11# syntax=docker/dockerfile:1.7
22
3- ARG GO_VERSION=1.24.13
3+ ARG GO_VERSION=1.25
44ARG VERSION=1.0.0
55
66FROM golang:${GO_VERSION}-bookworm AS builder
77WORKDIR /src
88
9- COPY go.mod go.sum ./
9+ COPY pkg/go.mod pkg/go.sum ./pkg/
10+ COPY compute-agent/go.mod compute-agent/go.sum ./compute-agent/
11+
12+ WORKDIR /src/compute-agent
1013RUN --mount=type=cache,target=/go/pkg/mod \
1114 go mod download
1215
13- COPY . .
16+ WORKDIR /src
17+ COPY pkg ./pkg
18+ COPY compute-agent ./compute-agent
1419
20+ WORKDIR /src/compute-agent
1521RUN --mount=type=cache,target=/go/pkg/mod \
1622 --mount=type=cache,target=/root/.cache/go-build \
1723 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
1824 go build -trimpath -ldflags "-s -w -X main.version=${VERSION}" \
1925 -o /out/persys-agent ./cmd/agent
2026
27+ # --- runtime stages unchanged from here down ---
2128FROM debian:bookworm-slim AS runtime-base
2229RUN apt-get update && apt-get install -y --no-install-recommends \
23- ca-certificates \
24- docker.io \
25- qemu-utils \
26- genisoimage \
27- libvirt-clients \
30+ ca-certificates docker.io qemu-utils genisoimage libvirt-clients \
2831 && rm -rf /var/lib/apt/lists/*
29-
3032RUN useradd -r -u 1000 -g 0 -m -s /usr/sbin/nologin persys && \
3133 mkdir -p /var/lib/persys /etc/persys/certs && \
3234 chown -R persys:root /var/lib/persys /etc/persys
33-
3435COPY --from=builder /out/persys-agent /usr/local/bin/persys-agent
35-
3636VOLUME ["/var/lib/persys" , "/etc/persys" ]
3737EXPOSE 50051 8080
38-
3938USER persys
40-
4139ENV PERSYS_STATE_PATH=/var/lib/persys/state.db \
4240 PERSYS_TLS_CERT=/etc/persys/certs/agent.crt \
4341 PERSYS_TLS_KEY=/etc/persys/certs/agent.key \
4442 PERSYS_TLS_CA=/etc/persys/certs/ca.crt \
4543 PERSYS_LOG_LEVEL=info
46-
4744ENTRYPOINT ["/usr/local/bin/persys-agent" ]
4845
49- # Default optimized runtime image.
50- FROM runtime-base AS runtime
51-
52- # Optional full runtime image with local daemons/tools for all-in-one test environments.
53- FROM runtime-base AS full-runtime
54- USER root
55- RUN apt-get update && apt-get install -y --no-install-recommends \
56- qemu-kvm \
57- libvirt-daemon-system \
58- && rm -rf /var/lib/apt/lists/*
59- USER persys
46+ FROM runtime-base AS runtime
0 commit comments