Search

Image Build

Go Binary Build

amd
Window
$env:GOOS="linux" $env:GOARCH="amd64" go build -o product
Shell
복사
Linux
GOOS=linux GOARCH=amd64 go build -o product
Shell
복사
arm
Window
$env:GOOS="linux" $env:GOARCH="arm64" go build -o product
Shell
복사
Linux
GOOS=linux GOARCH=arm64 go build -o product
Shell
복사

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"]
Docker
복사
# 빌드 스테이지 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"]
Docker
복사

Dockerfile - Single Stage

FROM golang:alpine WORKDIR /app COPY app.go . RUN apk add --no-cache curl && go mod init noah.io/ark/rest && go build app.go EXPOSE 8080 CMD ["./app"]
Docker
복사

Dockerfile - Database

FROM golang:alpine WORKDIR /app ENV RDS_ENDPOINT=<ENDPOINT> ENV RDS_USERNAME=<User> ENV RDS_PASSWORD=<Password> ENV RDS_DATABASE=<DataBase> COPY . . RUN apk add --no-cache curl RUN go mod init app RUN go get github.com/gin-gonic/gin RUN go get <Package> RUN go build -o app EXPOSE <Port> CMD ["./app"]
Docker
복사