워크스페이스 기본 포트와 검증 문서를 실제 런타임 기본값에 맞추고, 브리지 경계에서 adapter config 타입 정보를 보존해야 이후 원격 smoke와 경계 안정화 작업이 같은 계약을 사용할 수 있다.
29 lines
841 B
Docker
29 lines
841 B
Docker
# syntax=docker/dockerfile:1
|
|
|
|
FROM golang:1.24-alpine AS builder
|
|
|
|
WORKDIR /workspace/iop
|
|
RUN apk add --no-cache git
|
|
|
|
# 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 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"]
|