iop/apps/control-plane/Dockerfile
toki 10ede9381b chore(dev-corp): Control Plane compose 배포 상태를 반영한다
dev-corp Control Plane/observability compose 배포 결과를 inventory와 smoke 기준에 남기고, native Edge metrics용 Prometheus 설정을 분리한다. 원격 Docker 빌드의 TLS 제약을 피할 수 있도록 Control Plane runtime image 경로도 추가한다.
2026-07-13 15:35:10 +09:00

28 lines
832 B
Docker

# syntax=docker/dockerfile:1
FROM golang:1.24-alpine AS builder
WORKDIR /workspace/iop
# docker-compose builds this Dockerfile with /config/workspace as context so
# the local ../proto-socket/go replace in go.mod is available.
COPY iop/go.mod iop/go.sum ./
COPY proto-socket/go /workspace/proto-socket/go
RUN go mod download
COPY iop/ ./
RUN CGO_ENABLED=0 GOFLAGS="-trimpath -buildvcs=false" go build -o /out/control-plane ./apps/control-plane/cmd/control-plane
FROM alpine:3.22
RUN addgroup -S iop && adduser -S iop -G iop
WORKDIR /app
COPY --from=builder /out/control-plane /usr/local/bin/control-plane
COPY --from=builder /workspace/iop/configs/control-plane.yaml /app/configs/control-plane.yaml
EXPOSE 18000 19080 19081
USER iop
ENTRYPOINT ["control-plane"]
CMD ["serve", "--config", "/app/configs/control-plane.yaml"]