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   //运行已经编译的文件
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号