diff --git a/Dockerfile b/Dockerfile index d00cbc51fbdc972f6b5616409d5667d6d0bdc849..234abb6a0bbbc0d038a9884ec77e6a23fd1b9f39 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,16 @@ -FROM python:3.11 +FROM python:3.11-alpine ARG ARTIFACT_VERSION +RUN apk add gcc libc-dev libffi-dev RUN pip install \ --pre \ --extra-index-url https://artifactory.software.geant.org/artifactory/api/pypi/geant-swd-pypi/simple \ + --target /app \ geant-service-orchestrator==${ARTIFACT_VERSION} +WORKDIR /app + # 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 RUN mkdir -p /etc/gso @@ -19,7 +23,12 @@ EXPOSE 8080 # No need to set environment variables in your docker-compose. ENV OSS_PARAMS_FILENAME=/etc/gso/config.json # 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 -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"]