iop/apps/edge/Dockerfile

29 lines
771 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 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 /app/configs/edge-compose.yaml
EXPOSE 9090
USER iop
ENTRYPOINT ["edge"]
CMD ["serve", "--config", "/app/configs/edge-compose.yaml"]