File: Dockerfile

package info (click to toggle)
rust-apt-swarm 0.5.1-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,580 kB
  • sloc: makefile: 20; sh: 13
file content (27 lines) | stat: -rw-r--r-- 937 bytes parent folder | download
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"]