sognario-ci-builder (c-0c18c7b313e8)
Published 2026-08-06 09:01:18 +00:00 by yannick
Installation
docker pull git.teixos.net/yannick/sognario-ci-builder:c-0c18c7b313e8sha256:44c995c0b278d0c5347aed214342d9757c72870fc86c397f9715a488a2a0c872About this package
sognario CI builder: rust 1.96 + musl cross + node/go/buf toolchain + warm dependency caches
Image layers
| # debian.sh --arch 'amd64' out/ 'bookworm' '@1782172800' |
| RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates curl gnupg netbase sq wget ; rm -rf /var/lib/apt/lists/* # buildkit |
| RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends git mercurial openssh-client subversion procps ; rm -rf /var/lib/apt/lists/* # buildkit |
| RUN /bin/sh -c set -ex; apt-get update; apt-get install -y --no-install-recommends autoconf automake bzip2 default-libmysqlclient-dev dpkg-dev file g++ gcc imagemagick libbz2-dev libc6-dev libcurl4-openssl-dev libdb-dev libevent-dev libffi-dev libgdbm-dev libglib2.0-dev libgmp-dev libjpeg-dev libkrb5-dev liblzma-dev libmagickcore-dev libmagickwand-dev libmaxminddb-dev libncurses5-dev libncursesw5-dev libpng-dev libpq-dev libreadline-dev libsqlite3-dev libssl-dev libtool libwebp-dev libxml2-dev libxslt-dev libyaml-dev make patch unzip xz-utils zlib1g-dev ; rm -rf /var/lib/apt/lists/* # buildkit |
| LABEL org.opencontainers.image.source=https://github.com/rust-lang/docker-rust |
| ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo PATH=/usr/local/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RUST_VERSION=1.96.1 |
| RUN /bin/sh -c set -eux; arch="$(dpkg --print-architecture)"; case "$arch" in 'amd64') rustArch='x86_64-unknown-linux-gnu'; rustupSha256='4acc9acc76d5079515b46346a485974457b5a79893cfb01112423c89aeb5aa10'; ;; 'armhf') rustArch='armv7-unknown-linux-gnueabihf'; rustupSha256='124e02253af9128f9e27ea1ac929cbb73cf44cf35469d0f594a1b62f7b71fea1'; ;; 'arm64') rustArch='aarch64-unknown-linux-gnu'; rustupSha256='9732d6c5e2a098d3521fca8145d826ae0aaa067ef2385ead08e6feac88fa5792'; ;; 'i386') rustArch='i686-unknown-linux-gnu'; rustupSha256='5140e82096f96d1d8077f00eb312648e0e5106d101c9918d086f72cbc69bb3a1'; ;; 'ppc64el') rustArch='powerpc64le-unknown-linux-gnu'; rustupSha256='4bfff85bd3967d988e14567aa9cc6ab0ea386f0ffeff0f9f14d23f0103bf1f97'; ;; 's390x') rustArch='s390x-unknown-linux-gnu'; rustupSha256='66c2c132428b6b77803facb02cbdf33b89d20c00bd20da142be8cb651f2e7cd8'; ;; *) echo >&2 "unsupported architecture: $arch"; exit 1; ;; esac; url="https://static.rust-lang.org/rustup/archive/1.29.0/${rustArch}/rustup-init"; wget --progress=dot:giga "$url"; echo "${rustupSha256} *rustup-init" | sha256sum -c -; chmod +x rustup-init; ./rustup-init -y --no-modify-path --profile minimal --default-toolchain $RUST_VERSION --default-host ${rustArch}; rm rustup-init; chmod -R a+w $RUSTUP_HOME $CARGO_HOME; rustup --version; cargo --version; rustc --version; # buildkit |
| RUN apt-get update && apt-get install -y --no-install-recommends protobuf-compiler libprotobuf-dev git curl ca-certificates file jq procps xz-utils unzip && rm -rf /var/lib/apt/lists/* |
| RUN printf '%s\n' 'fail' 'silent' 'show-error' 'location' 'connect-timeout = 30' 'max-time = 1800' 'retry = 5' 'retry-delay = 5' 'retry-connrefused' 'speed-limit = 1024' 'speed-time = 120' > /root/.curlrc |
| RUN rustup target add x86_64-unknown-linux-musl aarch64-unknown-linux-musl wasm32-unknown-unknown |
| RUN for tc in x86_64-linux-musl-cross aarch64-linux-musl-cross; do curl -o "/tmp/${tc}.tgz" "https://musl.cc/${tc}.tgz" && tar xzf "/tmp/${tc}.tgz" -C /opt && rm -f "/tmp/${tc}.tgz" || { echo "musl toolchain fetch failed: ${tc}" >&2; exit 1; }; done |
| RUN curl -fsSL "https://github.com/mozilla/sccache/releases/download/v${SCCACHE_VER}/sccache-v${SCCACHE_VER}-x86_64-unknown-linux-musl.tar.gz" | tar xz -C /tmp --strip-components=1 --wildcards '*/sccache' && install -m0755 /tmp/sccache /usr/local/bin/sccache && rm -f /tmp/sccache |
| RUN curl -fsSL "https://nodejs.org/dist/v${NODE_VER}/node-v${NODE_VER}-linux-x64.tar.xz" | tar xJ -C /usr/local --strip-components=1 |
| RUN curl -fsSL "https://github.com/wasm-bindgen/wasm-pack/releases/download/v${WASM_PACK_VER}/wasm-pack-v${WASM_PACK_VER}-x86_64-unknown-linux-musl.tar.gz" | tar xz -C /usr/local/bin --strip-components=1 --wildcards '*/wasm-pack' |
| RUN curl -fsSL -o /usr/local/bin/buf "https://github.com/bufbuild/buf/releases/download/v${BUF_VER}/buf-Linux-x86_64" && chmod 0755 /usr/local/bin/buf |
| RUN curl -fsSL "https://github.com/casey/just/releases/download/${JUST_VER}/just-${JUST_VER}-x86_64-unknown-linux-musl.tar.gz" | tar xz -C /usr/local/bin just |
| RUN curl -fsSL "https://github.com/estesp/manifest-tool/releases/download/v${MANIFEST_TOOL_VER}/binaries-manifest-tool-${MANIFEST_TOOL_VER}.tar.gz" | tar xz -C /tmp && install -m0755 /tmp/manifest-tool-linux-amd64 /usr/local/bin/manifest-tool && rm -f /tmp/manifest-tool-* |
| RUN curl -fsSL "https://go.dev/dl/go${GO_VER}.linux-amd64.tar.gz" | tar xz -C /usr/local |
| COPY --from=prewarm /usr/local/cargo/registry /usr/local/cargo/registry |
| COPY --from=prewarm /usr/local/cargo/git /usr/local/cargo/git |
| COPY --from=prewarm /opt/gomod /opt/gomod |
| COPY --from=prewarm /opt/npm-cache /opt/npm-cache |
Labels
| Key | Value |
|---|---|
| org.opencontainers.image.description | sognario CI builder: rust 1.96 + musl cross + node/go/buf toolchain + warm dependency caches |
| org.opencontainers.image.source | https://git.teixos.net/yannick/sognario |
Details
Versions (1)
View all
c-0c18c7b313e8
2026-08-06