2025-12-23 19:17:16 +08:00

69 lines
1.6 KiB
Docker

FROM ubuntu:22.04
# Prevent interactive prompts during package installation
ENV DEBIAN_FRONTEND=noninteractive
# Install system dependencies
RUN apt-get update && apt-get install -y \
redis-server \
supervisor \
python3 \
python3-pip \
python3-venv \
nodejs \
npm \
openssh-server \
git \
curl \
wget \
vim \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Create frappe user
RUN useradd -m -s /bin/bash frappe
# Create necessary directories
RUN mkdir -p /home/frappe/frappe-bench/sites \
/home/frappe/frappe-bench/logs \
/home/frappe/frappe-bench/config \
/home/frappe/frappe-bench/config/ssh \
/home/frappe/frappe-bench/env \
/home/frappe/frappe-bench/apps
# Set ownership
RUN chown -R frappe:frappe /home/frappe
# Copy supervisord configuration
COPY supervisord.conf /etc/supervisor/supervisord.conf
# Expose ports
# Redis cache and redis queue ports
EXPOSE 11000 13000
# Switch to frappe user for remaining setup
USER frappe
WORKDIR /home/frappe/frappe-bench
# Install bench in .local bin
ENV PATH "$PATH:/home/frappe/.local/bin"
RUN wget https://bootstrap.pypa.io/get-pip.py && python3.10 get-pip.py
RUN pip install --upgrade frappe-bench=="5.25.1"
RUN pip install Jinja2~=3.0.3
RUN pip install --upgrade setuptools
RUN git config --global advice.detachedHead false
ENV PYTHONUNBUFFERED 1
# Switch back to root for final setup
USER root
# Create volume mount points
VOLUME ["/home/frappe/frappe-bench/sites", "/home/frappe/frappe-bench/logs", "/home/frappe/frappe-bench/config"]
# Start supervisord
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]