Deploy
Dockerfile
.dockerignore
.env
Dockerfile
FROM golang:1.20-alpine AS build
WORKDIR /app
# Private 리포지토리를 사용해야 하능 경우
# ARG GITHUB_TOKEN
# ENV GOPRIVATE=github.com/hhk7734
# RUN apk add --no-cache git
# RUN git config --global url.https://[email protected]/.insteadOf \
# https://github.com/
COPY . .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
-a \
-ldflags '-s' \
-tags=go_json,nomsgpack \
-buildvcs=false \
-o app \
./cmd/server
FROM alpine:3.17 AS runtime
WORKDIR /app
COPY /app/app /usr/bin/
ENTRYPOINT [ "app" ]
- scratch 이미지를 사용하면 작은 이미지를 만들 수 있지만, 디버깅이 어려울 수 있습니다.
- https://github.com/gin-gonic/gin/blob/master/docs/doc.md#build-tags
- msgpack을 사용하지 않는 다면
-tags nomsgpack
옵션으로 끌 수 있습니다. encoding/json
대신 사용할 json 패키지를 tag를 사용하여 선택할 수 있습니다.- go-json:
-tags go_json
- jsoniter:
-tags jsoniter
- sonic:
-tags sonic,avx
- go-json:
- msgpack을 사용하지 않는 다면