Files
windmill/docker/DockerfileSlim
T
2025-12-17 08:37:12 +00:00

64 lines
1.4 KiB
Plaintext

ARG ALPINE_IMAGE=alpine:3.21
FROM ${ALPINE_IMAGE}
ARG APP=/usr/src/app
ARG LATEST_STABLE_PY=3.11.10
# UV configuration
ENV UV_PYTHON_INSTALL_DIR=/tmp/windmill/cache/py_runtime
ENV UV_PYTHON_PREFERENCE=only-managed
RUN mkdir -p /usr/local/uv
ENV UV_TOOL_BIN_DIR=/usr/local/bin
ENV UV_TOOL_DIR=/usr/local/uv
ENV PATH=/usr/local/bin:/root/.local/bin:$PATH
# Install system dependencies
# gcompat provides glibc compatibility for running Debian-compiled binaries on Alpine
RUN apk add --no-cache \
gcompat \
libstdc++ \
ca-certificates \
wget \
curl \
git \
jq \
unzip \
build-base \
unixodbc \
xmlsec \
nodejs \
npm \
procps \
tzdata
ENV TZ=Etc/UTC
# Install UV
RUN curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.6.2/uv-installer.sh | sh && mv /root/.local/bin/uv /usr/local/bin/uv
# Preinstall python runtime
RUN uv python install $LATEST_STABLE_PY
RUN uv venv
COPY --from=oven/bun:1.2.23 /usr/local/bin/bun /usr/bin/bun
# add the docker client to call docker from a worker if enabled
COPY --from=docker:dind /usr/local/bin/docker /usr/local/bin/
WORKDIR ${APP}
COPY --from=ghcr.io/windmill-labs/windmill-ee:dev --chmod=755 ${APP}/windmill ${APP}/windmill
RUN ln -s ${APP}/windmill /usr/local/bin/windmill
COPY ./frontend/src/lib/hubPaths.json ${APP}/hubPaths.json
RUN windmill cache ${APP}/hubPaths.json
RUN rm ${APP}/hubPaths.json
EXPOSE 8000
CMD ["windmill"]