-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathDockerfile
27 lines (26 loc) · 937 Bytes
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
FROM rust:1-alpine3.21 as build
ENV RUSTFLAGS="-C target-feature=-crt-static"
RUN --mount=type=cache,target=/var/cache/apk ln -vs /var/cache/apk /etc/apk/cache && \
apk add clang-dev musl-dev && \
rm /etc/apk/cache
WORKDIR /app
COPY ./ /app
RUN --mount=type=cache,target=/var/cache/buildkit \
CARGO_HOME=/var/cache/buildkit/cargo \
CARGO_TARGET_DIR=/var/cache/buildkit/target \
cargo build --release --locked && \
cp -v /var/cache/buildkit/target/release/apt-swarm .
RUN strip apt-swarm
FROM alpine:3.21
# install dependencies
RUN --mount=type=cache,target=/var/cache/apk ln -vs /var/cache/apk /etc/apk/cache && \
apk add clang-libs crane libgcc && \
rm /etc/apk/cache && \
mkdir /data
# copy the binary
COPY --from=0 /app/apt-swarm /usr/bin
COPY contrib/apt-swarm.conf /etc
ARG UPDATE_CHECK_COMMIT=
ENV UPDATE_CHECK_COMMIT=$UPDATE_CHECK_COMMIT
ENV APT_SWARM_DATA_PATH=/data
ENTRYPOINT ["apt-swarm"]