FROM python:3.9-slim as base # Setup env ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONFAULTHANDLER 1 FROM base AS python-deps # Install pipenv and compilation dependencies RUN pip install pipenv RUN apt-get update && apt-get install -y --no-install-recommends gcc g++ git libpq-dev musl-dev # Install python dependencies in /.venv COPY Pipfile . COPY Pipfile.lock . RUN PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy FROM base AS runtime RUN apt-get update && apt-get install -y --no-install-recommends cron libpq-dev # Copy virtual env from python-deps stage COPY --from=python-deps /.venv /.venv ENV PATH="/.venv/bin:$PATH" # Create and switch to a new user # RUN useradd --create-home appuser WORKDIR /root # USER appuser # Install application into container COPY . . RUN ./spacy_setup.sh # Copy crontab and start cron in foreground mode COPY crontab /etc/crontabs/root CMD ["cron", "-f"]