mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2026-06-07 02:49:43 +00:00
35 lines
963 B
Docker
35 lines
963 B
Docker
# Builder image for mailcow-agent. Each service Dockerfile pulls the static
|
|
# binary from here via:
|
|
#
|
|
# COPY --from=ghcr.io/mailcow/agent:VERSION /out/mailcow-agent /usr/local/bin/mailcow-agent
|
|
#
|
|
# For local development: build this image first.
|
|
#
|
|
# docker build -t ghcr.io/mailcow/agent:dev data/Dockerfiles/agent/
|
|
#
|
|
# CI publishes a versioned tag and the service Dockerfiles pin against it via
|
|
# ARG AGENT_IMAGE.
|
|
|
|
FROM golang:1.22-alpine AS build
|
|
|
|
ENV CGO_ENABLED=0 \
|
|
GOOS=linux
|
|
|
|
WORKDIR /src
|
|
|
|
COPY go.mod go.sum* ./
|
|
RUN go mod download
|
|
|
|
COPY . .
|
|
|
|
RUN mkdir -p /out \
|
|
&& go build -trimpath -ldflags="-s -w" \
|
|
-o /out/mailcow-agent ./cmd/mailcow-agent \
|
|
&& cp mailcow-agent-cli /out/mailcow-agent-cli \
|
|
&& chmod +x /out/mailcow-agent-cli
|
|
|
|
# Final stage: tiny image whose only purpose is to be a COPY --from source.
|
|
FROM scratch
|
|
COPY --from=build /out/mailcow-agent /out/mailcow-agent
|
|
COPY --from=build /out/mailcow-agent-cli /out/mailcow-agent-cli
|