zoukankan      html  css  js  c++  java
  • 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   //运行已经编译的文件
    
  • 相关阅读:
    数据结构-第5章学习小结
    数据结构-第4章学习小结
    数据结构-第3章学习小结
    数据结构-第2章学习小结
    数据结构-第1章学习小结
    实验五 单元测试
    实验四 代码评审
    实验三 UML建模工具的安装和使用
    实验二 结对编程 (第二阶段)
    结对编程实验 第一阶段
  • 原文地址:https://www.cnblogs.com/fanzou/p/13501338.html
Copyright © 2011-2022 走看看