docker_webserver #2

Merged
brian merged 3 commits from docker_webserver into main 2024-02-15 22:45:41 +01:00
2 changed files with 79 additions and 0 deletions
Showing only changes of commit 84b87430b1 - Show all commits
+64
View File
@@ -0,0 +1,64 @@
###########
# BUILDER #
###########
# pull official base image
FROM python:3.12-slim-bullseye as BUILDER
# set environment variables
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
PIP_NO_CACHE_DIR=off \
PIP_DISABLE_PIP_VERSION_CHECK=ON \
PIP_DEFAULT_TIMEOUT=100 \
DEBIAN_FRONTEND=noninteractive \
POETRY_HOME=/etc/poetry \
POETRY_VERSION=1.7.1 \
POETRY_VIRTUALENVS_IN_PROJECT=1 \
POETRY_VIRTUALENVS_CREATE=1 \
POETRY_NO_INTERACTION=1 \
POETRY_CACHE_DIR=/tmp/poetry_cache \
APP_HOME=/home/app
# update system
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
curl \
&& apt-get clean
# install poetry
RUN curl -sSL https://install.python-poetry.org | python3 -
ENV PATH="${POETRY_HOME}/bin:$PATH"
# install runtime dependencies
WORKDIR ${APP_HOME}
COPY poetry.lock pyproject.toml ./
RUN --mount=type=cache,target=${POETRY_CACHE_DIR} poetry install --no-root
#########
# FINAL #
#########
# pull official base image
FROM python:3.12-slim-bullseye
# copy virtualenv made by poetry
ENV APP_HOME=/home/app \
VIRTUAL_ENV=/home/app/.venv
COPY --from=builder ${VIRTUAL_ENV} ${VIRTUAL_ENV}
ENV PATH="${VIRTUAL_ENV}/bin:${PATH}"
# create home directory and app user
RUN mkdir -p /home/app && \
addgroup --system app && \
adduser --system --group app
# add code while changing ownership
WORKDIR $APP_HOME
COPY --chown=app:app ./src .
# change to the app user
USER app
ENTRYPOINT [ "gunicorn", "web:server", "-b", "0.0.0.0:8050" ]
+15
View File
@@ -0,0 +1,15 @@
services:
app:
image: visual_critical_discourse_analysis:dev
container_name: visual_critical_discourse_analysis
build:
context: .
dockerfile: Dockerfile
ports:
- 8050:8050
networks:
- backend
networks:
backend:
external: false