@@ -14,61 +14,23 @@ ENV DJANGO_SETTINGS_MODULE=pycon.settings.prod \
1414 CELERY_RESULT_BACKEND=demo \
1515 HASHID_DEFAULT_SECRET_SALT=demo
1616
17- FROM base AS build-stage
18-
19- ARG FUNCTION_DIR
20-
21- RUN mkdir -p ${FUNCTION_DIR}
22- WORKDIR ${FUNCTION_DIR}
23-
2417RUN apt-get update -y && apt-get install -y \
25- gcc libpq-dev git \
26- # Pillow
2718 libtiff5-dev libjpeg62 libopenjp2-7-dev zlib1g-dev \
2819 libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python3-tk \
2920 libharfbuzz-dev libfribidi-dev libxcb1-dev libldap2-dev libldap-2.5-0 \
3021 ffmpeg libsm6 libxext6 libglib2.0-0 libpango-1.0-0 libpangoft2-1.0-0 libharfbuzz-subset0
3122
32- ENV LIBRARY_PATH=/lib:/usr/lib LD_LIBRARY_PATH=/lib:/usr/lib
23+ FROM base AS build-stage
3324
34- RUN pip install uv==0.5.5
25+ ARG FUNCTION_DIR
26+
27+ RUN apt-get update -y && apt-get install -y \
28+ gcc libpq-dev git
29+
30+ RUN mkdir -p ${FUNCTION_DIR}
31+ WORKDIR ${FUNCTION_DIR}
3532
36- RUN tar -czvf /libs.tar.gz --strip-components=4 \
37- /usr/lib/aarch64-linux-gnu/libpq* \
38- /usr/lib/aarch64-linux-gnu/libldap_r* \
39- /usr/lib/aarch64-linux-gnu/libldap* \
40- /usr/lib/aarch64-linux-gnu/liblber* \
41- /usr/lib/aarch64-linux-gnu/libsasl* \
42- /usr/lib/aarch64-linux-gnu/libxml2* \
43- /usr/lib/aarch64-linux-gnu/libgcrypt* \
44- /usr/lib/aarch64-linux-gnu/libstdc++* \
45- /usr/lib/aarch64-linux-gnu/libjpeg* \
46- /usr/lib/aarch64-linux-gnu/libopenjp2* \
47- /usr/lib/aarch64-linux-gnu/libdeflate* \
48- /usr/lib/aarch64-linux-gnu/libjbig* \
49- /usr/lib/aarch64-linux-gnu/liblcms2* \
50- /usr/lib/aarch64-linux-gnu/libwebp* \
51- /usr/lib/aarch64-linux-gnu/libtiff* \
52- /usr/lib/aarch64-linux-gnu/libGL* \
53- /usr/lib/aarch64-linux-gnu/libgthread* \
54- /usr/lib/aarch64-linux-gnu/libglib-* \
55- /usr/lib/aarch64-linux-gnu/libX11* \
56- /usr/lib/aarch64-linux-gnu/libxcb* \
57- /usr/lib/aarch64-linux-gnu/libXau* \
58- /usr/lib/aarch64-linux-gnu/libXdmcp* \
59- /usr/lib/aarch64-linux-gnu/libXext* \
60- /usr/lib/aarch64-linux-gnu/libpango* \
61- /usr/lib/aarch64-linux-gnu/libharf* \
62- /usr/lib/aarch64-linux-gnu/libharfbuzz* \
63- /usr/lib/aarch64-linux-gnu/libfontconfig* \
64- /usr/lib/aarch64-linux-gnu/libexpat* \
65- /usr/lib/aarch64-linux-gnu/libgobject* \
66- /usr/lib/aarch64-linux-gnu/libbrotli* \
67- /usr/lib/aarch64-linux-gnu/libpng* \
68- /usr/lib/aarch64-linux-gnu/libthai* \
69- /usr/lib/aarch64-linux-gnu/libfribidi* \
70- /usr/lib/aarch64-linux-gnu/libdatrie* \
71- /usr/lib/aarch64-linux-gnu/libbsd*;
33+ RUN pip install uv==0.5.5
7234
7335COPY pyproject.toml uv.lock ./
7436
@@ -117,22 +79,12 @@ COPY --chown=app:app --from=js-stage ${FUNCTION_DIR}/dist/*.html ${FUNCTION_DIR}
11779COPY --chown=app:app --from=js-stage ${FUNCTION_DIR}/dist/_astro ${FUNCTION_DIR}/custom_admin/static/_astro/
11880COPY --chown=app:app --from=build-stage ${FUNCTION_DIR}/.venv ${FUNCTION_DIR}/.venv
11981
120- COPY --from=build-stage /usr/local/lib/*.so* /usr/local/lib/
121- COPY --from=build-stage /libs.tar.gz /libs.tar.gz
122-
123- RUN tar -xvf /libs.tar.gz -C /usr/lib/aarch64-linux-gnu && \
124- tar -xvf /libs.tar.gz -C /lib/aarch64-linux-gnu && \
125- rm /libs.tar.gz && \
126- ldconfig
127-
12882COPY --chown=app:app . ${FUNCTION_DIR}
12983
13084USER app
13185
13286RUN mkdir -p assets
13387
134- ENV DJANGO_SETTINGS_MODULE=pycon.settings.prod
135-
13688RUN .venv/bin/python manage.py collectstatic --noinput
13789
13890ENTRYPOINT ["/home/app/.venv/bin/gunicorn" ]
0 commit comments