FROM python:3.11-alpine
WORKDIR /app

ARG ARTIFACT_VERSION

RUN apk add --no-cache gcc libc-dev libffi-dev && \
    addgroup -S appgroup && adduser -S appuser -G appgroup -h /app

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}

# 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 && \
    chown -R appuser:appgroup /etc/gso
COPY --chown=appuser:appgroup gso/oss-params-example.json /app/config.json

# The app reads the configuration from this location.
# No need to set environment variables in your docker-compose.
ENV OSS_PARAMS_FILENAME=/app/config.json
# Set the environment variable for the translations directory
ENV TRANSLATIONS_DIR=/app/gso/translations/

COPY --chown=appuser:appgroup --chmod=755 entrypoint.sh /app/entrypoint.sh

USER appuser
EXPOSE 8080
ENTRYPOINT ["/app/entrypoint.sh"]