Edge Dockerfile에서 envsubst를 사용해 환경 변수를 템플릿에 대입한 후 설정 파일을 생성하도록 변경한다. - Dockerfile에 gettext 패키지를 추가한다 - configs/edge-compose.yaml을 configs/edge-compose.yaml.tmpl로 전환하여 환경 변수 대치 지원 - docker-compose.yml edge 서비스에 환경 변수를 명시적으로 전달
29 lines
891 B
Docker
29 lines
891 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/edge ./apps/edge/cmd/edge
|
|
|
|
FROM alpine:3.22
|
|
|
|
RUN apk add --no-cache gettext && addgroup -S iop && adduser -S iop -G iop
|
|
WORKDIR /app
|
|
|
|
COPY --from=builder /out/edge /usr/local/bin/edge
|
|
COPY --from=builder /workspace/iop/configs/edge-compose.yaml.tmpl /app/configs/edge-compose.yaml.tmpl
|
|
|
|
EXPOSE 9090
|
|
|
|
USER iop
|
|
ENTRYPOINT ["/bin/sh", "-c"]
|
|
CMD ["envsubst < /app/configs/edge-compose.yaml.tmpl > /tmp/edge-compose.yaml && exec edge serve --config /tmp/edge-compose.yaml"]
|