• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Docker 部署Go的两种基础镜像的实现

    一、 golang:latest 基础镜像

    mkdir gotest
    touch main.go
    touch Dockerfile

    1. 实例代码

    package main
    
    import (
        "fmt"
        "log"
        "net/http"
    )
    
    func main() {
        http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
            fmt.Fprint(writer, "Hello World")
        })
        fmt.Println("3000!!")
        log.Fatal(http.ListenAndServe(":3000", nil))
    }
    
    

    2. Dockerfile配置

    #源镜像
    FROM golang:latest
    #设置工作目录
    WORKDIR $GOPATH/src/github.com/gotest
    #将服务器的go工程代码加入到docker容器中
    ADD . $GOPATH/src/github.com/gotest
    #go构建可执行文件
    RUN go build .
    #暴露端口
    EXPOSE 3000
    #最终运行docker的命令
    ENTRYPOINT ["./gotest"]
    

    3. 打包镜像

    docker build -t gotest .
    

    二、 alpine:latest 基础镜像

    1. 使用此镜像大概过程就是,在linux机器,先把go程序打包成二进制文件,再丢到apine环境,执行编译好的文件。
    2. 默认情况下,Go的runtime环境变量CGO_ENABLED=1,即默认开始cgo,允许你在Go代码中调用C代码。通过设置CGO_ENABLED=0就禁用CGO了。所以需要执行:CGO_ENABLED=0 go build .即可。
    3. 此基础镜像打包只有13M,特别小。
    #源镜像
    FROM alpine:latest
    #设置工作目录
    WORKDIR $GOPATH/src/github.com/common
    #将服务器的go工程代码加入到docker容器中
    ADD . $GOPATH/src/github.com/common
    #暴露端口
    EXPOSE 3002
    #最终运行docker的命令
    ENTRYPOINT ["./common"]

    打包镜像

    docker build -t common .

    到此这篇关于Docker 部署Go的两种基础镜像的实现的文章就介绍到这了,更多相关Docker 部署Go镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    上一篇:Docker安装Redis并介绍可视化客户端进行操作
    下一篇:基于Docker镜像部署go项目的方法步骤
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Docker 部署Go的两种基础镜像的实现 Docker,部署,的,两种,基础,