美文网首页
docker运行go web程序

docker运行go web程序

作者: 渣渣曦 | 来源:发表于2019-05-26 22:37 被阅读0次

1、创建工程文件夹goweb。
2、创建dockerfile文件命名为“Dockerfile",文件内容如下:

# 使用alpine开启
FROM alpine
LABEL maintainer="zhi@zhizhicloud.com"
# 拷贝编译程序
COPY . /app
WORKDIR /app
# 打开8080端口
EXPOSE 8080
# 运行!
CMD ["./main"]

3、创建一个template文件夹,在文件夹下创建命名为index.html,文件中填写如下代码:

<h1>欢迎使用docker</h1>

<p>这个一个go web docker程序</p>

4、使用go程序编写一个web服务

package main

import (
    "fmt"
    "html/template"
    "log"
    "net/http"
)

func IndexHandler(w http.ResponseWriter, r *http.Request) {
    t, err := template.ParseFiles("templates/index.html")
    if err != nil {
        log.Println(err)
    }
    err = t.Execute(w,nil)
    if err != nil {
        log.Println(err)
    }
}

func main() {
    http.HandleFunc("/",IndexHandler)
    fmt.Println("服务端口:8000")                 //控制台输出信息
    err := http.ListenAndServe(":8000", nil) //设置监听的端口
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}

5、编译程序、创建镜像、运行服务
windows下跨平台编译linux文件需要设置以下变量:

set GOARCH=amd64
set GOOS=linux
go build -o main
$ sudo start docker #开启docker服务 
$ sudo docker build -t webserver -f Dockerfile .
$ sudo docker run webserver

$ sudo docker build -t webserver -f Dockerfile .
$ sudo docker run -p 8080:8000 webserver

服务端口: 8080 (注:程序原8000端口被转为8080端口)
成功开启docker容器的 go web服务


image.png

6、使用docker-compose安装服务
docker-compose.yml文件内容如下:

version: "3.5"
services:
  webserver:
     image: "webserver"
     ports:
             - target: 8000
               published: 8080

启动docker-compose:

$ sudo docker-compose up &

相关文章

网友评论

      本文标题:docker运行go web程序

      本文链接:https://www.haomeiwen.com/subject/kuqqtctx.html