mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-21 00:02:30 +00:00
v0.8.0 ships "Update hash algorithm for Rust >= 1.85" — without it the freshness detection used by `cargo sweep --maxsize` is inaccurate on the Rust 1.93 toolchain pulled by these images, so the worker's rust target dir can silently grow past the cap. Also picks up "Don't panic when timestamp file is not found" and "Don't bail if cleaning fails in one project". Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
68 lines
2.7 KiB
Plaintext
68 lines
2.7 KiB
Plaintext
FROM alpine:3.14 AS oracledb-client
|
|
|
|
ARG TARGETPLATFORM
|
|
|
|
# Oracle DB Client for amd64
|
|
COPY --from=ghcr.io/oracle/oraclelinux9-instantclient:23 /usr/lib/oracle/23/client64/lib /opt/oracle/23/amd64/lib
|
|
|
|
# Oracle DB Client for arm64
|
|
RUN mkdir -p /opt/oracle/23/arm64 \
|
|
&& cd /opt/oracle/23/arm64 \
|
|
&& wget https://download.oracle.com/otn_software/linux/instantclient/2326100/instantclient-basiclite-linux.arm64-23.26.1.0.0.zip \
|
|
&& unzip instantclient-basiclite-linux.arm64-23.26.1.0.0.zip && rm instantclient-basiclite-linux.arm64-23.26.1.0.0.zip && mv instantclient* ./lib
|
|
|
|
RUN if [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
|
|
mv /opt/oracle/23/arm64/lib /opt/oracle/23/lib; \
|
|
else \
|
|
mv /opt/oracle/23/amd64/lib /opt/oracle/23/lib; \
|
|
fi
|
|
|
|
FROM ghcr.io/windmill-labs/windmill-ee:dev
|
|
|
|
# Rust
|
|
COPY --from=rust:1.93.0 /usr/local/cargo /usr/local/cargo
|
|
COPY --from=rust:1.93.0 /usr/local/rustup /usr/local/rustup
|
|
RUN RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo /usr/local/cargo/bin/cargo install cargo-sweep --version ^0.8
|
|
|
|
# Ansible
|
|
RUN uv tool install ansible && [ -d "$(uv tool dir)/ansible/bin/" ] && find "$(uv tool dir)/ansible/bin/" -mindepth 1 -maxdepth 1 -type f -executable -regextype posix-extended -regex '^((.+/)?)[^.]+' -print0 | xargs -0 ln -s -t "$UV_TOOL_BIN_DIR/" || true
|
|
# dotnet SDK
|
|
RUN wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh \
|
|
&& chmod +x dotnet-install.sh \
|
|
&& ./dotnet-install.sh --channel 9.0 --install-dir /usr/share/dotnet \
|
|
&& ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \
|
|
&& rm dotnet-install.sh
|
|
|
|
# Oracle DB Client
|
|
COPY --from=oracledb-client /opt/oracle/23/lib /opt/oracle/23/lib
|
|
RUN apt-get -y update && apt-get install -y libaio1
|
|
RUN echo /opt/oracle/23/lib > /etc/ld.so.conf.d/oracle-instantclient.conf && ldconfig
|
|
|
|
# Nushell
|
|
COPY --from=ghcr.io/nushell/nushell:0.101.0-bookworm /usr/bin/nu /usr/bin/nu
|
|
|
|
# Java
|
|
RUN apt-get -y update && apt-get install -y default-jdk
|
|
RUN curl -fLo coursier https://github.com/coursier/coursier/releases/download/v2.1.24/coursier \
|
|
&& mv ./coursier /usr/bin/coursier \
|
|
&& chmod +x /usr/bin/coursier
|
|
RUN /usr/bin/java -jar /usr/bin/coursier about
|
|
|
|
# Ruby
|
|
RUN apt-get install -y ruby ruby-bundler
|
|
|
|
# R
|
|
RUN apt-get install -y r-base-dev \
|
|
&& Rscript -e 'install.packages("renv", lib="/usr/lib/R/library", repos="https://cloud.r-project.org")'
|
|
|
|
# iptables
|
|
RUN apt-get install -y iptables
|
|
|
|
# Kerberos runtime
|
|
RUN apt-get install -y libsasl2-modules-gssapi-mit krb5-user
|
|
|
|
# Fix UV cache permissions for non-root user support (uid 1000, etc.)
|
|
# The uv tool install ansible command populates the UV cache with root-owned files
|
|
RUN chmod -R a+rw /tmp/windmill/cache/uv && \
|
|
find /tmp/windmill/cache/uv -type d -exec chmod 777 {} +
|