《Grpc+Protobuf學習筆記》三、go使用docker編譯執行

WZY發表於2021-05-19

dockerfile編寫

# 打包依賴階段使用golang作為基礎映象
FROM golang:1.14 as builder

WORKDIR /app

# 啟用go module
ENV GO111MODULE=on \
    GOPROXY=https://goproxy.cn,direct \
    CGO_ENABLED=0 \
    GOOS=linux \
    GOARCH=amd64

#
RUN git clone 這裡是githu地址

## 切換到相應目錄go build
RUN cd /app/image-merge_grpc && go build /app/image-merge_grpc


## 支援中文alpine的基礎映象
FROM frolvlad/alpine-glibc:alpine-3.11_glibc-2.30

WORKDIR /app

# 將上一個階段app資料夾下的所有檔案複製進來
COPY --from=builder  /app .
# 複製下時區檔案,不知道中文alpine映象有沒有,待測試 
COPY --from=builder  /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

## 為了防止程式碼中請求https連結報錯,我們需要將證照納入到scratch中
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/cert

EXPOSE 50054

WORKDIR /app/image-merge_grpc

ENTRYPOINT ["./imageMerge"]

docker-compose.yml 編寫

version: '3'
services:
  go_images_merge:
    container_name: go_images_merge #容器名稱
    build: ./docker/go_image_merge #dockerfile所在目錄
    image: go_images_merge:v1.0.3 #映象名稱
    restart: always #自動重啟
    ports:
      - "50054:50054"
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章