1- FROM ghcr.io/astral-sh/uv:python3.13-alpine AS base
1+ FROM ghcr.io/astral-sh/uv:bookworm-slim
22
3+ # This will be set by the GitHub action to the folder containing this component.
34ARG FOLDER=/app
45
5- WORKDIR ${FOLDER}
6-
7- ENV UV_COMPILE_BYTECODE=1
8- ENV UV_TOOL_BIN_DIR=/usr/local/bin
9- ENV PATH="$FOLDER/.venv/bin:$PATH"
10-
11- RUN apk add --no-cache shadow \
12- && apk add --no-cache nodejs npm \
13- && npm install -g nodemon
14-
15- RUN groupadd -g 1000 devgroup && \
16- useradd -u 1000 -g 1000 -m devuser
17-
18- COPY . /app
19-
20- RUN mkdir -p /.cache/uv && chown devuser:devgroup -R /.cache /.cache/uv
6+ # This will be set by the GitHub action to the folder containing this component.
7+ ARG FOLDER=/app
218
22- RUN chown -R devuser:devgroup /app
9+ RUN mkdir /app && chown 1000:1000 /app
2310
24- RUN uv venv \
25- && uv sync
11+ RUN mkdir -p /.cache/uv && chown -R 1000:1000 /.cache
12+ RUN mkdir -p /.local/share/uv/python && chown -R 1000:1000 /.local/share/uv
13+ RUN mkdir -p /.local/bin && chown -R 1000:1000 /.local/bin
2614
27- USER devuser
15+ WORKDIR /app
2816
29- EXPOSE 8000
17+ ENV UV_LINK_MODE=copy
18+ ENV UV_PYTHON_INSTALL_DIR=$FOLDER/.python
19+ ENV PATH="$FOLDER/.venv/bin:$PATH"
3020
31- ENTRYPOINT [ ]
21+ USER 1000:1000
3222
33- CMD ["/usr/local/bin/nodemon", \
34- "--delay", "1", \
35- "--watch", "requirements.txt", \
36- "--watch", ".venv/lib/*", \
37- "--watch", ".venv/lib64/*", \
38- "--watch", "djangoapp", \
39- "--watch", "manage.py", \
40- "--ext", "py", \
41- "--exec", "uv run --isolated python3 manage.py runserver 0.0.0.0:8000", \
42- "--"]
23+ CMD ["uv", "run", "python", "manage.py", "runserver", "0.0.0.0:8000"]
0 commit comments