-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
56 lines (42 loc) · 1.53 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Base image with .NET SDK installation
FROM python:3.11-slim AS python-base
# Install .NET SDK - this needs to be done before trying to use dotnet commands
# TODO: pin .NET SDK version
RUN apt-get update \
&& apt-get install -y wget libfontconfig make \
&& wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \
&& dpkg -i packages-microsoft-prod.deb \
&& rm packages-microsoft-prod.deb \
&& apt-get update \
&& apt-get install -y dotnet-sdk-8.0 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Disable .NET welcome message and telemetry
ENV DOTNET_NOLOGO=1
ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
# Poetry configuration
ENV POETRY_VERSION=1.8.5
ENV POETRY_HOME=/opt/poetry
ENV POETRY_VENV=/opt/poetry-venv
ENV POETRY_VIRTUALENVS_CREATE=false
ENV POETRY_VIRTUALENVS_IN_PROJECT=false
ENV POETRY_NO_INTERACTION=1
# Poetry installation stage
FROM python-base AS poetry-base
RUN python -m venv "$POETRY_VENV" \
&& "$POETRY_VENV"/bin/pip install -U pip setuptools \
&& "$POETRY_VENV"/bin/pip install poetry==${POETRY_VERSION}
FROM python-base AS app
# Copy Poetry installation from poetry-base stage
COPY --from=poetry-base ${POETRY_VENV} ${POETRY_VENV}
ENV PATH="${PATH}:${POETRY_VENV}/bin"
WORKDIR /app
COPY pyproject.toml poetry.lock README.md Makefile ./
COPY agents ./agents
RUN make install
RUN make build-dotnet
RUN mkdir -p /app/output
ENV PYTHONPATH=/app
ENV PYTHONUNBUFFERED=1
CMD ["poetry", "run", "generate"]