38 lines
1.1 KiB
Docker
38 lines
1.1 KiB
Docker
# For more information, please refer to https://aka.ms/vscode-docker-python
|
|
FROM python:3.10-slim as poetry
|
|
|
|
RUN pip install -U pip setuptools && pip install --no-cache-dir -U poetry
|
|
|
|
WORKDIR /app
|
|
|
|
COPY poetry.lock pyproject.toml ./
|
|
|
|
RUN poetry export --without=dev,docs --output requirements.txt
|
|
|
|
# == Main image == #
|
|
FROM python:3.10-slim
|
|
EXPOSE 5000
|
|
|
|
# Keeps Python from generating .pyc files in the container
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
# Turns off buffering for easier container logging
|
|
ENV PYTHONUNBUFFERED=1
|
|
|
|
RUN pip install -U pip setuptools
|
|
|
|
WORKDIR /app
|
|
|
|
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
|
|
|
|
# Install pip requirements
|
|
COPY --from=poetry /app/requirements.txt ./
|
|
RUN python -m pip install --no-cache-dir -r requirements.txt
|
|
|
|
# # Creates a non-root user with an explicit UID and adds permission to access the /app folder
|
|
USER appuser
|
|
|
|
COPY broker ./
|
|
|
|
# # During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
|
|
CMD ["bash", "-c", "gunicorn --bind 0.0.0.0:5000 routes:app"]
|