foxhole/Dockerfile
2023-03-29 18:12:43 +08:00

35 lines
1.1 KiB
Docker

FROM python:3.11-slim as python-base
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
POETRY_HOME="/opt/poetry" \
POETRY_VIRTUALENVS_IN_PROJECT=true \
POETRY_NO_INTERACTION=1 \
PYSETUP_PATH="/opt/venv" \
VENV_PATH="/opt/venv/.venv"
ENV PATH="$POETRY_HOME/bin:$VENV_PATH/bin:$PATH"
FROM python-base as builder-base
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl build-essential gcc libffi-dev libssl-dev \
libxml2-dev libxslt1-dev zlib1g-dev libxslt-dev \
gcc libjpeg-dev zlib1g-dev libwebp-dev
RUN curl -sSL https://install.python-poetry.org | python3 -
WORKDIR $PYSETUP_PATH
COPY poetry.lock pyproject.toml ./
RUN poetry install
FROM python-base as production
RUN apt-get update && \
apt-get install -y --no-install-recommends \
libjpeg-dev libxslt1-dev libxml2-dev libxslt-dev
COPY --from=builder-base /opt /opt
COPY . /app/
RUN groupadd --gid 1000 foxhole \
&& useradd --uid 1000 --gid foxhole --shell /bin/bash foxhole
RUN chown -R 1000:1000 /app
USER foxhole
WORKDIR /app
EXPOSE 7000
CMD ["./misc/start.sh"]