FROM python:3.7 WORKDIR /app/ # Install Poetry RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | POETRY_HOME=/opt/poetry python && \ cd /usr/local/bin && \ ln -s /opt/poetry/bin/poetry && \ poetry config virtualenvs.create false # Copy poetry.lock* in case it doesn't exist in the repo COPY ./app/pyproject.toml ./app/poetry.lock* /app/ RUN poetry install --no-dev --no-root # For development, Jupyter remote kernel, Hydrogen # Using inside the container: # jupyter lab --ip=0.0.0.0 --allow-root --NotebookApp.custom_display_url=http://127.0.0.1:8888 ARG env=prod RUN bash -c "if [ $env == 'dev' ] ; then pip install jupyterlab ; fi" EXPOSE 8888 COPY ./app /app ENV PYTHONPATH=/app COPY ./app/tests-start.sh /tests-start.sh RUN chmod +x /tests-start.sh # This will make the container wait, doing nothing, but alive CMD ["bash", "-c", "while true; do sleep 1; done"] # Afterwards you can exec a command /tests-start.sh in the live container, like: # docker exec -it backend-tests /tests-start.sh