Skip to content
Snippets Groups Projects
Commit dbf7063f authored by Karel van Klink's avatar Karel van Klink :smiley_cat:
Browse files

update Dockerfile

- move to alpine-based image for reduced size
- apk add requirements
- pip install to target dir in /app
- add translations as environment variable
- automatically install all required database migrations
parent a12dffef
Branches
Tags
1 merge request!90include TRANSLATIONS_DIR as environment variable in the Docker image
This commit is part of merge request !90. Comments created here will be created in the context of that merge request.
FROM python:3.11 FROM python:3.11-alpine
ARG ARTIFACT_VERSION ARG ARTIFACT_VERSION
RUN apk add gcc libc-dev libffi-dev
RUN pip install \ RUN pip install \
--pre \ --pre \
--extra-index-url https://artifactory.software.geant.org/artifactory/api/pypi/geant-swd-pypi/simple \ --extra-index-url https://artifactory.software.geant.org/artifactory/api/pypi/geant-swd-pypi/simple \
--target /app \
geant-service-orchestrator==${ARTIFACT_VERSION} geant-service-orchestrator==${ARTIFACT_VERSION}
WORKDIR /app
# Create the directory for the configuration and copy the example config into it # Create the directory for the configuration and copy the example config into it
# NOTE: a real config must be mounted at /etc/gso/config.json when running the container # NOTE: a real config must be mounted at /etc/gso/config.json when running the container
RUN mkdir -p /etc/gso RUN mkdir -p /etc/gso
...@@ -19,7 +23,12 @@ EXPOSE 8080 ...@@ -19,7 +23,12 @@ EXPOSE 8080
# No need to set environment variables in your docker-compose. # No need to set environment variables in your docker-compose.
ENV OSS_PARAMS_FILENAME=/etc/gso/config.json ENV OSS_PARAMS_FILENAME=/etc/gso/config.json
# Set the environment variable for the translations directory # Set the environment variable for the translations directory
ENV TRANSLATIONS_DIR=$(python3 -c "from os import path; import gso; print(path.join(path.split(gso.__file__)[0], 'translations'))" | tail -n 1) ENV TRANSLATIONS_DIR=/app/gso/translations/
# Run database migrations
RUN mv gso/migrations gso/migrations_temp
RUN PYTHONPATH=. python gso/main.py db init
RUN rm -rf gso/migrations && mv gso/migrations_temp gso/migrations
RUN PYTHONPATH=. python gso/main.py db upgrade heads
# Start the FastAPI application # Start the FastAPI application
CMD ["uvicorn", "gso.main:app", "--host", "0.0.0.0", "--port", "8080"] CMD ["python", "-m", "uvicorn", "gso.main:app", "--host", "0.0.0.0", "--port", "8080"]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment