Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Fix] Prevent Poetry compilation problems in non-Linux environments #48

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 23 additions & 4 deletions gen-ai-orchestrator-server/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,32 @@
FROM python:3.11-alpine

# Set environment variables
ENV PYTHONUNBUFFERED=1 \
POETRY_VERSION=1.8.3 \
# Poetry virtual environments are disabled to install packages globally inside the container.
POETRY_VIRTUALENVS_CREATE=false \
POETRY_NO_INTERACTION=1 \
# The Poetry cache directory is set to reduce repeated downloads in future builds.
POETRY_CACHE_DIR='/var/cache/pypoetry'

# Install Poetry
RUN pip install "poetry==$POETRY_VERSION"
Copy link
Member

@Benvii Benvii Oct 7, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure fabrikIO correctly support it we it would be better do use multi-staged docker file : https://medium.com/@albertazzir/blazing-fast-python-docker-builds-with-poetry-a78a66f5aed0#:~:text=Using%20Docker%20multi%2Dstage%20builds

It could be done in an other PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I'm working on it

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm having a docker build problems (proxy/repository). It would be better to deal with this later.


# Set working directory in the container
WORKDIR /app

COPY target/requirements.txt .
# Copy only the necessary files to the Docker container
COPY target/server/pyproject.toml /app/
COPY target/server/poetry.lock /app/

RUN pip install --no-cache-dir -r requirements.txt
# Install dependencies
RUN poetry install --no-root --no-dev --verbose

COPY target/gen_ai_orchestrator gen_ai_orchestrator/
# Copy the rest of the project files into the container
COPY target/server/src/gen_ai_orchestrator gen_ai_orchestrator/

# Expose port for web app
EXPOSE 8000

CMD ["uvicorn", "gen_ai_orchestrator.main:app", "--host", "0.0.0.0", "--port", "8000", "--log-config", "gen_ai_orchestrator/configurations/logging/config.ini"]
# Run the application
CMD ["uvicorn", "gen_ai_orchestrator.main:app", "--host", "0.0.0.0", "--port", "8000", "--log-config", "gen_ai_orchestrator/configurations/logging/config.ini"]