Self-hostable blog for developers built on Wagtail and Django, with webpack, Bootstrap, and CodeMirror.
blogbootstrapdjangodockerhandcodedpythonself-hostedwagtailwebpack
1FROM alpine:3.21
2
3ENV LANG="C.UTF-8"
4ENV UV_COMPILE_BYTECODE=1
5ENV UV_LINK_MODE=copy
6
7COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
8
9RUN apk add --update --no-cache \
10 python3 \
11 nodejs yarn \
12 chromium libstdc++ nss harfbuzz freetype font-noto font-noto-extra font-noto-emoji
13
14WORKDIR /app
15
16COPY pyproject.toml uv.lock package.json yarn.lock /app/
17RUN yarn install && \
18 uv sync --frozen --no-dev
19
20COPY . .
21
22ENV PATH="/app/.venv/bin:/app/node_modules/.bin:$PATH"
23
24RUN webpack --config webpack.config.js --mode production && \
25 python3 manage.py collectstatic --noinput
26
27RUN addgroup -S -g 1000 app && \
28 adduser -S -h /app -s /sbin/nologin -u 1000 -G app app && \
29 chown -R app:app /app
30USER app:app