/ 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"]