/ Dockerfile.runtime
Dockerfile.runtime
1 # Runtime image for radicle-node with our custom COBs 2 # Build: docker build -f Dockerfile.runtime -t radicle-node:local . 3 4 FROM rust:1.85-alpine3.20 AS builder 5 WORKDIR /src 6 7 # Install build dependencies 8 RUN apk add --no-cache git musl-dev openssl-dev openssl-libs-static pkgconfig 9 10 # Copy source 11 COPY . . 12 13 # Build release binaries 14 RUN cargo build --release \ 15 -p radicle-node \ 16 -p radicle-cli \ 17 -p radicle-remote-helper 18 19 # Runtime image 20 FROM alpine:3.20 21 22 RUN apk add --no-cache \ 23 git \ 24 openssh-client \ 25 ca-certificates \ 26 libgcc 27 28 # Copy binaries 29 COPY --from=builder /src/target/release/rad /usr/local/bin/ 30 COPY --from=builder /src/target/release/git-remote-rad /usr/local/bin/ 31 COPY --from=builder /src/target/release/radicle-node /usr/local/bin/ 32 33 # Create radicle user and directories 34 RUN adduser -D -h /home/radicle radicle && \ 35 mkdir -p /data/radicle && \ 36 chown -R radicle:radicle /data/radicle 37 38 ENV RAD_HOME=/data/radicle 39 ENV PATH="/usr/local/bin:$PATH" 40 41 EXPOSE 8776 8080 42 43 # Default: run radicle-node 44 CMD ["radicle-node", "--listen", "0.0.0.0:8776"]