From b0a919fb7fa936a54b388c6b805d7198c93561f5 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Sun, 16 Feb 2025 22:06:16 +0100 Subject: [PATCH 1/4] fix: cloning repositories Before this any compilation feature would not work on my computer when it came to cloning a repository. --- Cargo.lock | 16 ++++++++++++++++ Cargo.toml | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 236c586..6f8e7d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1221,6 +1221,19 @@ dependencies = [ "webpki-roots 0.26.7", ] +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.30", + "native-tls", + "tokio", + "tokio-native-tls", +] + [[package]] name = "hyper-tls" version = "0.6.0" @@ -2235,10 +2248,12 @@ dependencies = [ "http-body 0.4.6", "hyper 0.14.31", "hyper-rustls 0.24.2", + "hyper-tls 0.5.0", "ipnet", "js-sys", "log", "mime", + "native-tls", "once_cell", "percent-encoding", "pin-project-lite", @@ -2250,6 +2265,7 @@ dependencies = [ "sync_wrapper 0.1.2", "system-configuration", "tokio", + "tokio-native-tls", "tokio-rustls 0.24.1", "tower-service", "url", diff --git a/Cargo.toml b/Cargo.toml index 5253299..83e4468 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,9 +36,9 @@ directories = { version = "5.0" } comrak = { version = "0.28.0", optional = true } [features] -default = ["reqwest/default-tls"] # link against system library +default = ["reqwest/default-tls", "openidconnect/native-tls"] # link against system library rustls = ["reqwest/rustls-tls", "openidconnect/rustls-tls"] # include rustls, ssl library written in rust -vendored-openssl = ["openssl/vendored"] # include compiled openssl library +vendored-openssl = ["git2/vendored-openssl", "reqwest/native-tls-vendored"] # include compiled openssl library user-doc = [ "dep:comrak" ] [dev-dependencies] From 99c5c60432adc7bb19b6c2f0f8d728a5577e8c18 Mon Sep 17 00:00:00 2001 From: Tasko Olevski Date: Sun, 16 Feb 2025 23:18:02 +0100 Subject: [PATCH 2/4] feat: run in distroless docker image --- .dockerignore | 5 +++++ Dockerfile | 9 +++++++++ musl.Dockerfile | 9 +++++++++ 3 files changed, 23 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 musl.Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..19261bf --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +.git +.github +packaged +target + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..82b7975 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM rust:bookworm AS builder +WORKDIR /app +COPY . . +RUN apt update && apt install -y cmake +RUN cargo build --release --bin rnk --no-default-features -F vendored-openssl -F vendored-zlib --target-dir /build + +FROM gcr.io/distroless/cc-debian12 +COPY --from=builder /build/release/rnk /rnk +ENTRYPOINT ["/rnk"] diff --git a/musl.Dockerfile b/musl.Dockerfile new file mode 100644 index 0000000..658ed43 --- /dev/null +++ b/musl.Dockerfile @@ -0,0 +1,9 @@ +FROM rust:bookworm AS builder +WORKDIR /app +COPY . . +RUN apt update && apt install -y cmake musl-tools +RUN rustup target add x86_64-unknown-linux-musl && cargo build --release --bin rnk --no-default-features -F vendored-openssl -F vendored-zlib --target-dir /build --target=x86_64-unknown-linux-musl + +FROM gcr.io/distroless/static +COPY --from=builder /build/x86_64-unknown-linux-musl/release/rnk /rnk +ENTRYPOINT ["/rnk"] From dafdbbc4987716340adc8a485516d012adf557c2 Mon Sep 17 00:00:00 2001 From: Tasko Olevski <16360283+olevski@users.noreply.github.com> Date: Thu, 26 Feb 2026 14:16:11 +0100 Subject: [PATCH 3/4] Revert "fix: cloning repositories" This reverts commit 872e848884b2524fc3762c6e237ebf8a173ad0cf. --- Cargo.lock | 22 +--------------------- Cargo.toml | 4 ++-- 2 files changed, 3 insertions(+), 23 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6f8e7d8..37b34b9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -995,8 +995,6 @@ dependencies = [ "libc", "libgit2-sys", "log", - "openssl-probe", - "openssl-sys", "url", ] @@ -1221,19 +1219,6 @@ dependencies = [ "webpki-roots 0.26.7", ] -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper 0.14.30", - "native-tls", - "tokio", - "tokio-native-tls", -] - [[package]] name = "hyper-tls" version = "0.6.0" @@ -1539,9 +1524,7 @@ checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" dependencies = [ "cc", "libc", - "libssh2-sys", "libz-sys", - "openssl-sys", "pkg-config", ] @@ -2248,12 +2231,10 @@ dependencies = [ "http-body 0.4.6", "hyper 0.14.31", "hyper-rustls 0.24.2", - "hyper-tls 0.5.0", "ipnet", "js-sys", "log", "mime", - "native-tls", "once_cell", "percent-encoding", "pin-project-lite", @@ -2265,7 +2246,6 @@ dependencies = [ "sync_wrapper 0.1.2", "system-configuration", "tokio", - "tokio-native-tls", "tokio-rustls 0.24.1", "tower-service", "url", diff --git a/Cargo.toml b/Cargo.toml index 83e4468..5253299 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,9 +36,9 @@ directories = { version = "5.0" } comrak = { version = "0.28.0", optional = true } [features] -default = ["reqwest/default-tls", "openidconnect/native-tls"] # link against system library +default = ["reqwest/default-tls"] # link against system library rustls = ["reqwest/rustls-tls", "openidconnect/rustls-tls"] # include rustls, ssl library written in rust -vendored-openssl = ["git2/vendored-openssl", "reqwest/native-tls-vendored"] # include compiled openssl library +vendored-openssl = ["openssl/vendored"] # include compiled openssl library user-doc = [ "dep:comrak" ] [dev-dependencies] From 66f9a05fd0420d17c3cb0b90c268d419632929ec Mon Sep 17 00:00:00 2001 From: Tasko Olevski <16360283+olevski@users.noreply.github.com> Date: Thu, 26 Feb 2026 14:37:49 +0100 Subject: [PATCH 4/4] squashme: minor fixes --- Cargo.lock | 14 ++++++++++++++ Cargo.toml | 1 + Dockerfile | 2 +- musl.Dockerfile | 2 +- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 37b34b9..91ec182 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -367,6 +367,15 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +[[package]] +name = "cmake" +version = "0.1.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" +dependencies = [ + "cc", +] + [[package]] name = "colorchoice" version = "1.0.3" @@ -995,6 +1004,8 @@ dependencies = [ "libc", "libgit2-sys", "log", + "openssl-probe", + "openssl-sys", "url", ] @@ -1524,7 +1535,9 @@ checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" dependencies = [ "cc", "libc", + "libssh2-sys", "libz-sys", + "openssl-sys", "pkg-config", ] @@ -1565,6 +1578,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ "cc", + "cmake", "libc", "pkg-config", "vcpkg", diff --git a/Cargo.toml b/Cargo.toml index 5253299..258aca8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -39,6 +39,7 @@ comrak = { version = "0.28.0", optional = true } default = ["reqwest/default-tls"] # link against system library rustls = ["reqwest/rustls-tls", "openidconnect/rustls-tls"] # include rustls, ssl library written in rust vendored-openssl = ["openssl/vendored"] # include compiled openssl library +vendored-zlib = ["git2/zlib-ng-compat"] # without this feature wherever the cli is installed needs to have zlib.so user-doc = [ "dep:comrak" ] [dev-dependencies] diff --git a/Dockerfile b/Dockerfile index 82b7975..24efdf4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM rust:bookworm AS builder WORKDIR /app COPY . . RUN apt update && apt install -y cmake -RUN cargo build --release --bin rnk --no-default-features -F vendored-openssl -F vendored-zlib --target-dir /build +RUN cargo build --release --bin rnk -F vendored-openssl -F vendored-zlib --target-dir /build FROM gcr.io/distroless/cc-debian12 COPY --from=builder /build/release/rnk /rnk diff --git a/musl.Dockerfile b/musl.Dockerfile index 658ed43..dc4ce07 100644 --- a/musl.Dockerfile +++ b/musl.Dockerfile @@ -2,7 +2,7 @@ FROM rust:bookworm AS builder WORKDIR /app COPY . . RUN apt update && apt install -y cmake musl-tools -RUN rustup target add x86_64-unknown-linux-musl && cargo build --release --bin rnk --no-default-features -F vendored-openssl -F vendored-zlib --target-dir /build --target=x86_64-unknown-linux-musl +RUN rustup target add x86_64-unknown-linux-musl && cargo build --release --bin rnk -F vendored-openssl -F vendored-zlib --target-dir /build --target=x86_64-unknown-linux-musl FROM gcr.io/distroless/static COPY --from=builder /build/x86_64-unknown-linux-musl/release/rnk /rnk