Skip to content
Snippets Groups Projects
Dockerfile_api 977 B
Newer Older
  • Learn to ignore specific revisions
  • Robert Goldmann's avatar
    Robert Goldmann committed
    FROM python:3.12-alpine AS poetry
    
    RUN apk update && apk upgrade && \
        apk add curl gcc python3-dev libc-dev build-base linux-headers postgresql-dev && \
        rm -rf /var/cache/apk
    RUN curl https://install.python-poetry.org | python -
    
    COPY api/pyproject.toml /opt/RoadmapApi/pyproject.toml
    COPY api/poetry.lock /opt/RoadmapApi/poetry.lock
    COPY api/ /opt/RoadmapApi/src
    
    WORKDIR /opt/RoadmapApi
    RUN /root/.local/bin/poetry install --without dev --no-root
    RUN ln -s $($HOME/.local/share/pypoetry/venv/bin/poetry env info -p) /opt/RoadmapApi/venv
    
    FROM python:3.12-alpine
    
    RUN apk update && apk upgrade && \
        apk add postgresql-libs && \
        rm -rf /var/cache/apk
    
    COPY api/ /opt/RoadmapApi/src
    COPY --from=poetry /opt/RoadmapApi/venv /opt/RoadmapApi/venv
    
    RUN adduser -D roadmapapi && chown -R roadmapapi:roadmapapi /opt/RoadmapApi
    USER roadmapapi
    
    WORKDIR /opt/RoadmapApi/src
    EXPOSE 8080
    CMD [ "/opt/RoadmapApi/venv/bin/python", "/opt/RoadmapApi/src/RoadmapAPIServer.py"]