go項目docker容器部署


注意

  • 1.ENV GO111MODULE on 若是mod管理依賴包,必須開啟mod
  • 2.ENV CGO_ENABLED 0 必須配置為0,否則docker容器中編譯失敗
  • 3.COPY 文件至容器時,保證文件拷貝至容器/go/src/ 環境下;
    曾配置COPY . /apps 但是創建運行容器時,沒報錯,但是拷貝失敗,具體原因不知,歡迎大神解答

一、Dockerfile

FROM golang

//修改系統為上海時區
RUN echo "Asia/Shanghai" > /etc/timezone \
 && rm /etc/localtime && dpkg-reconfigure -f noninteractive tzdata

ENV GO111MODULE on    //開啟go mod 模式
ENV CGO_ENABLED 0    //必須配置為0,否則docker容器中編譯失敗,CGO_ENABLED=0的情況下,Go采用純靜態編譯,避免各種動態鏈接庫依賴的問題

WORKDIR /go/src/projectname   //切換到工作路徑,建議到/go/src 路徑下,曾在將項目文件拷貝至容器時,由於配置其他項目,導致一直拷貝不成功

COPY . .  //將容器外項目文件拷貝至容器中
RUN go mod tidy   //安裝依賴
RUN go build   //編譯

二、docker-compose

version: '2.4'
services:
  http:
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
    ports:
      - "8022:8080"
    command:
      /go/src/projectname/projectname   //運行已經編譯的文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM