zoukankan      html  css  js  c++  java
  • Docker部署go示例

        

    1.在main.go 文件中编写代码,这里我先用一段使用net/http库编写的简单代码为例讲解如何使用Docker进行部署,后面再讲解稍微复杂一点的项目部署案例。

    package main
    
    import (
    	"fmt"
    	"net/http"
    )
    
    func main() {
    	http.HandleFunc("/", hello)
    	server := &http.Server{
    		Addr: ":8888",
    	}
      fmt.Println("server startup...")
    	if err := server.ListenAndServe(); err != nil {
    		fmt.Printf("server startup failed, err:%v
    ", err)
    	}
    }
    
    func hello(w http.ResponseWriter, _ *http.Request) {
    	w.Write([]byte("hello liwenzhou.com!"))
    }
    

      上面的代码通过8888端口对外提供服务,返回一个字符串响应:hello liwenzhou.com!

    创建Docker镜像

    镜像(image)包含运行应用程序所需的所有东西——代码或二进制文件、运行时、依赖项以及所需的任何其他文件系统对象。

    或者简单地说,镜像(image)是定义应用程序及其运行所需的一切。

    编写Dockerfile

    要创建Docker镜像(image)必须在配置文件中指定步骤。这个文件默认我们通常称之为Dockerfile。(虽然这个文件名可以随意命名它,但最好还是使用默认的Dockerfile。)

    现在我们开始编写Dockerfile,具体内容如下:

    FROM golang:alpine
    
    # 为我们的镜像设置必要的环境变量 ,(轻型操作系统)容器的环境变量
    ENV GO111MODULE=on 
        CGO_ENABLED=0 
        GOOS=linux 
        GOARCH=amd64
    
    # 移动到工作目录:/build   类似于cd 命令切换到指定目录,容器启动后此目录下面会有切换到这个目录后,复制过来的文件
    WORKDIR /build
    
    # 将代码复制到容器中
    COPY . .
    
    # 将我们的代码编译成二进制可执行文件app
    RUN go build -o app .
    
    # 移动到用于存放生成的二进制文件的 /dist 目录
    WORKDIR /dist
    
    # 将二进制文件从 /build 目录复制到这里
    RUN cp /build/app .
    
    # 声明服务端口
    EXPOSE 8888
    
    # 启动容器时运行的命令
    CMD ["/dist/app"]
      
    

      

    构建镜像

    docker build . -t goweb_app

    运行镜像

    docker run -p 8888:8888 goweb_app
    

      

  • 相关阅读:
    React元素渲染
    初识JSX
    微信小程序复制文本到剪切板
    微信小程序报错request:fail url not in domain list
    小程序,通过自定义编译条件,模拟推荐人功能
    积分抵扣逻辑
    微信小程序 switch 样式
    tomcat 配置开启 APR 模式
    tomcat8 传输json 报错 Invalid character found in the request target. The valid characters are defined in RFC 3986
    c++数组初始化误区
  • 原文地址:https://www.cnblogs.com/zxqblogrecord/p/14097900.html
Copyright © 2011-2022 走看看