1
- ARG PYTHON_VERSION=3.11
2
- FROM python:$PYTHON_VERSION-slim as base
1
+ ARG PYTHON_VERSION=3.12
2
+ FROM python:$PYTHON_VERSION-slim AS base
3
3
ARG UID=2000
4
4
ARG GID=2000
5
5
RUN addgroup --gid $GID nonroot && \
@@ -26,7 +26,7 @@ RUN pip install --no-cache-dir -U poetry
26
26
# for binaries installed in virtual environments
27
27
ENTRYPOINT ["poetry" , "run" ]
28
28
29
- FROM base as base_builder
29
+ FROM base AS base_builder
30
30
# Install build system requirements (gcc, library headers, etc.)
31
31
# for compiled Python requirements like psycopg2
32
32
RUN apt-get update \
@@ -44,23 +44,23 @@ COPY --chown=nonroot:nonroot poetry.lock .
44
44
COPY --chown=nonroot:nonroot Makefile .
45
45
46
46
# Test image, contains all files and dependencies
47
- FROM base_builder as dev
47
+ FROM base_builder AS dev
48
48
COPY --chown=nonroot:nonroot . .
49
49
RUN make dev-dependencies
50
50
# Note that opentelemetry doesn't play well together with uvicorn reloader
51
51
# when signals are propagated, we disable it in dev image default CMD
52
52
CMD ["uvicorn" , "http_app:create_app" , "--host" , "0.0.0.0" , "--port" , "8000" , "--factory" , "--reload" ]
53
53
54
54
# Installs requirements to run production celery application
55
- FROM base_builder as celery_builder
55
+ FROM base_builder AS celery_builder
56
56
RUN poetry install --no-root
57
57
58
58
# Installs requirements to run production http application
59
- FROM base_builder as http_builder
59
+ FROM base_builder AS http_builder
60
60
RUN poetry install --no-root --with http
61
61
62
62
# Copy the shared python packages
63
- FROM base as base_app
63
+ FROM base AS base_app
64
64
USER nonroot
65
65
RUN poetry config virtualenvs.path /poetryvenvs
66
66
COPY --chown=nonroot:nonroot pyproject.toml .
@@ -73,16 +73,15 @@ COPY --chown=nonroot:nonroot src/alembic.ini .
73
73
COPY --chown=nonroot:nonroot Makefile .
74
74
75
75
# Copy the http python package and requirements from relevant builder
76
- FROM base_app as http_app
76
+ FROM base_app AS http_app
77
77
COPY --from=http_builder /poetryvenvs /poetryvenvs
78
78
COPY --chown=nonroot:nonroot src/http_app ./http_app
79
79
# Run CMD using array syntax, so it's uses `exec` and runs as PID1
80
80
CMD ["opentelemetry-instrument" , "uvicorn" , "http_app:create_app" , "--host" , "0.0.0.0" , "--port" , "8000" , "--factory" ]
81
81
82
82
# Copy the celery python package and requirements from relevant builder
83
- FROM base_app as celery_app
83
+ FROM base_app AS celery_app
84
84
COPY --from=celery_builder /poetryvenvs /poetryvenvs
85
85
COPY --chown=nonroot:nonroot src/celery_worker ./celery_worker
86
- RUN ls
87
86
# Run CMD using array syntax, so it's uses `exec` and runs as PID1
88
87
CMD ["opentelemetry-instrument" , "celery" , "-A" , "celery_worker:app" , "worker" , "-l" , "INFO" ]
0 commit comments