mirror of
https://github.com/timothymiller/cloudflare-ddns.git
synced 2026-03-21 14:38:56 -03:00
Narrow tokio features to rt-multi-thread, macros, time and signal. Add release profile to reduce binary size: opt-level = s, lto = true, codegen-units = 1, strip = true, panic = abort Update Cargo.lock to remove unused deps and adjust Dockerfile to copy CA certs from builder and set ENTRYPOINT for the release image Use scratch base image and optimize release build Add linux/ppc64le support in CI and build script Switch Docker release stage to scratch, copy CA certificates from the builder and use an explicit ENTRYPOINT for the binary Tighten Cargo release profile (opt-level="s", lto, codegen-units=1, strip, panic="abort") and reduce Tokio features to shrink the binary Update README to reflect image size and supported platforms
14 lines
399 B
Docker
14 lines
399 B
Docker
# ---- Build ----
|
|
FROM rust:alpine AS builder
|
|
RUN apk add --no-cache musl-dev
|
|
WORKDIR /build
|
|
COPY Cargo.toml Cargo.lock ./
|
|
COPY src ./src
|
|
RUN cargo build --release
|
|
|
|
# ---- Release ----
|
|
FROM scratch AS release
|
|
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
|
COPY --from=builder /build/target/release/cloudflare-ddns /cloudflare-ddns
|
|
ENTRYPOINT ["/cloudflare-ddns", "--repeat"]
|