glibc static build

This commit is contained in:
🪞👃🪞 2025-04-19 14:30:04 +03:00
parent 393634a1a4
commit 59372911d2
12 changed files with 62 additions and 22 deletions

14
build/Dockerfile.glibc Normal file
View file

@ -0,0 +1,14 @@
FROM docker.io/library/debian:bookworm
RUN apt update \
&& apt install -y build-essential bash tree git wget \
pkg-config libjack-dev liblilv-dev libserd-dev libsord-dev
RUN adduser --quiet --uid 1000 --disabled-password build
RUN wget https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-init \
&& chmod +x ./rustup-init \
&& mv rustup-init /usr/bin/rustup-init
USER build
WORKDIR /home/build
RUN rustup-init -yv --profile minimal --default-toolchain nightly \
&& rm -rvf "$HOME/.rustup/roolchains/*/share"
RUN ls -alh "$HOME" && bash -c '. "$HOME/.cargo/env" \
&& cargo version -vv'

13
build/Dockerfile.musl Normal file
View file

@ -0,0 +1,13 @@
FROM docker.io/library/alpine:edge
RUN apk add --no-cache build-base bash tree rustup git just cloc clang20-dev pipewire-jack-dev
RUN adduser -Du1000 build
USER 1000
RUN rustup-init -y --profile minimal --default-toolchain nightly \
&& rm -rvf "$HOME/.rustup/roolchains/*/share"
RUN source "$HOME/.cargo/env" \
&& cargo version -vv

0
build/README.md Normal file
View file

11
build/release-glibc-shell.sh Executable file
View file

@ -0,0 +1,11 @@
#!/usr/bin/env sh
set -exo pipefail
docker inspect tek:glibc || time docker build --cache-from=internal \
-f build/Dockerfile.glibc -t tek:glibc .
time docker run \
--rm -itu0 \
-v .:/build -w /build \
-vtek-build-cargo:/home/build/.cargo \
-vtek-build-target:/build/target \
-eRUST_JACK_DLOPEN=true \
tek:glibc $@

14
build/release-glibc.sh Executable file
View file

@ -0,0 +1,14 @@
#!/usr/bin/env sh
set -exo pipefail
docker inspect tek:glibc || time docker build --cache-from=internal \
-f build/Dockerfile.glibc -t tek:glibc .
time docker run \
--rm -itu0 \
-v .:/build -w /build \
-vtek-build-cargo:/home/build/.cargo \
-vtek-build-target:/build/target \
-eRUST_JACK_DLOPEN=true \
tek:glibc sh -c "chown -R 1000:1000 /build/target \
&& su build -c '. ~/.cargo/env \
&& time cargo build -j4 --release \
&& cp target/release/tek build/'"

11
build/release-musl-shell.sh Executable file
View file

@ -0,0 +1,11 @@
#!/usr/bin/env sh
set -exo pipefail
docker inspect tek:musl || time docker build --cache-from=internal \
-f build/Dockerfile.musl -t tek:musl .
time docker run \
--rm -itu0 \
-v .:/build -w /build \
-vtek-build-cargo:/home/build/.cargo \
-vtek-build-target:/build/target \
-eRUST_JACK_DLOPEN=true \
tek:musl $@

14
build/release-musl.sh Executable file
View file

@ -0,0 +1,14 @@
#!/usr/bin/env sh
set -exo pipefail
docker inspect tek:musl || time docker build --cache-from=internal \
-f build/Dockerfile.musl -t tek:musl .
time docker run \
--rm -itu0 \
-v .:/build -w /build \
-vtek-build-cargo:/home/build/.cargo \
-vtek-build-target:/build/target \
-eRUST_JACK_DLOPEN=true \
tek:musl sh -c "chown -R 1000:1000 /build/target \
&& su build -c 'source ~/.cargo/env \
&& just build-release \
&& cp target/release/tek build/'"