52 lines
2.5 KiB
Docker
52 lines
2.5 KiB
Docker
# vim: set ft=dockerfile:
|
|
FROM stagex/busybox:sx2024.11.0@sha256:3d128909dbc8e7b6c4b8c3c31f4583f01a307907ea179934bb42c4ef056c7efd AS busybox
|
|
FROM stagex/binutils:sx2024.11.0@sha256:eff721a796fdfba8c34e21a487b0e376fb55ca2633524926998f1660fbb810de AS binutils
|
|
FROM stagex/musl:sx2024.11.0@sha256:d7f6c365f5724c65cadb2b96d9f594e46132ceb366174c89dbf7554897f2bc53 AS musl
|
|
FROM stagex/rust:sx2024.11.0@sha256:f23fa04c29ab0250b39c38ee1cc4394a1ea3ec91b865070716a585d2b96389ed AS rust
|
|
FROM stagex/gcc:sx2024.11.0@sha256:49ea63c81c65f8be25c242b7e64f2758b23effdaafb458b5862d0f23ec803075 AS gcc
|
|
FROM stagex/llvm:sx2024.11.0@sha256:27da8a38ec621317dbafbf1dbdefb07a5b007d1d28ae86393480209652ed3770 AS llvm
|
|
FROM stagex/libunwind:sx2024.11.0@sha256:290b8d183a467edc55e338471632f2e40859aef92a4eecf12415ca29b9c16e9f AS libunwind
|
|
FROM stagex/openssl:sx2024.11.0@sha256:8e3eb24b4d21639f7ea204b89211d8bc03a2e1b729fb1123f8d0b3752b4beaa1 AS openssl
|
|
FROM stagex/zlib:sx2024.11.0@sha256:09d63654e27decb6147f1b23005d539e30db8e53eb2d284e824bcf4d4e7c3c11 AS zlib
|
|
FROM stagex/ca-certificates:sx2024.11.0@sha256:a84695f983a448a82acfe78af11f33c6a66b27124266e1fdc3ecfb8dc5852573 AS ca-certificates
|
|
FROM stagex/clang:sx2024.11.0@sha256:c26069d378f36c06b5d91e3aba907521ec79eb0864d65a4c28a2db17947ec25f AS clang
|
|
FROM stagex/pkgconf:sx2024.11.0@sha256:05b4ac6b931cd81fe5aff48c5a77bb9ae472e2bfbce3cc7d4698c670712d4409 AS pkgconf
|
|
FROM stagex/jq:sx2024.11.0@sha256:f54ab8399ca0b373d34a61e2aadd0bb28fac54841c9495043fd477316ceefd7c AS jq
|
|
|
|
FROM scratch AS base
|
|
|
|
|
|
COPY --from=busybox . /
|
|
COPY --from=binutils . /
|
|
COPY --from=musl . /
|
|
COPY --from=rust . /
|
|
COPY --from=gcc . /
|
|
COPY --from=llvm . /
|
|
COPY --from=libunwind . /
|
|
COPY --from=openssl . /
|
|
COPY --from=zlib . /
|
|
COPY --from=ca-certificates . /
|
|
COPY --from=clang . /
|
|
COPY --from=pkgconf . /
|
|
COPY --from=jq . /
|
|
|
|
COPY Cargo.toml /app/Cargo.toml
|
|
COPY Cargo.lock /app/Cargo.lock
|
|
COPY .cargo /app/.cargo
|
|
COPY crates /app/crates
|
|
COPY icepick.toml /
|
|
WORKDIR /app
|
|
|
|
RUN cargo fetch --locked
|
|
RUN cargo build --frozen --release --target x86_64-unknown-linux-musl --bin icepick
|
|
RUN cargo build --frozen --release --target x86_64-unknown-linux-musl --bin icepick-sol
|
|
RUN <<EOF
|
|
cargo fetch --locked
|
|
cargo build --frozen --release --target x86_64-unknown-linux-musl --bin icepick
|
|
cargo build --frozen --release --target x86_64-unknown-linux-musl --bin icepick-sol
|
|
cp /app/target/x86_64-unknown-linux-musl/release/icepick /usr/bin
|
|
cp /app/target/x86_64-unknown-linux-musl/release/icepick-sol /usr/bin
|
|
EOF
|
|
|
|
WORKDIR /
|