2018年12月12日 星期三

Golang base dockerfile example

這是精華:已第三方套件作為範例

build出來的image很少超過100MB
註:此第三方套件很久沒有維護,因此有內容,沒改過的話沒辦法跑

FROM golang:1.10.3

WORKDIR /go/src/github.com/baobabus/go-apnsmock
COPY . .

ENV GOPATH="/go"

RUN go get github.com/dgrijalva/jwt-go
RUN go get github.com/satori/go.uuid
RUN go get golang.org/x/net/http2

#Build Go Binary 執行檔
RUN CGO_ENABLED=0 GOOS=linux go build -o apnsmock .

#Build完後其他都不需要,直接開最純粹的空image
FROM alpine:latest

#在k8s 上執行一定要有執行者
RUN addgroup -g 1000 -S appuser && \
    adduser -u 1000 -S appuser -G appuser

#重置執行路徑,為放置參數或其他相關設定
WORKDIR /opts

COPY certs /opts/certs
COPY --from=0 /go/src/github.com/baobabus/go-apnsmock/apnsmock /bin/apnsmock

#執行
CMD apnsmock -addr 0.0.0.0:8443 -conn-delay 200ms

沒有留言:

張貼留言