Go Binary Build

amd

$env:GOOS="linux"
$env:GOARCH="amd64"
go build -o product
GOOS=linux GOARCH=amd64 go build -o product

arm

$env:GOOS="linux"
$env:GOARCH="arm64"
go build -o product
GOOS=linux GOARCH=arm64 go build -o product

Dockerfile - Multi Stage

FROM golang:alpine AS builder
ENV GO111MODULE=on \\
    CGO_ENABLED=0 \\
    GOOS=linux \\
    GOARCH=amd64

WORKDIR /build
COPY go.mod go.sum app.go ./
RUN go mod download && go build -o app .
WORKDIR /dist
RUN cp /build/app .

FROM scratch
COPY --from=builder /dist/app .
EXPOSE 8080
ENTRYPOINT ["/app"]
# 빌드 스테이지
FROM golang:alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o product

# 최종 스테이지
FROM alpine
WORKDIR /app
COPY --from=builder /app/product .
RUN chmod +x product
CMD ["./product"]