docker部署goweb项目

新建一个go项目,确保电脑已经装好了docker
编写两个文件main.goDockerfile

main.go

package main

import (
	"fmt"
	"net/http"
)

func main() {
	http.HandleFunc("/", betterHanlder)
	server := &http.Server{
		Addr: ":8900",
	}
	fmt.Println("服务启动....")
	if err := server.ListenAndServe(); err != nil {
		fmt.Printf("服务启动失败, err:%v\n", err)
	}
}

func betterHanlder(w http.ResponseWriter, _ *http.Request) {
	w.Write([]byte("明天会更好"))
}

Dockerfile

FROM golang:alpine AS builder

# 为我们的镜像设置必要的环境变量
ENV GO111MODULE=on \
    CGO_ENABLED=0 \
    GOOS=linux \
    GOARCH=amd64

# 移动到工作目录:/build
WORKDIR /build

# 复制项目中的 go.mod 和 go.sum文件并下载依赖信息
#COPY go.mod .
#COPY go.sum .
#RUN go mod download

# 将代码复制到容器中
COPY . .

# 将我们的代码编译成二进制可执行文件 app
RUN go build -o app .

# 声明服务端口
EXPOSE 8900

# 启动容器时运行的命令
CMD ["/build/app"]

终端运行命令如下

docker build . -t goweb_deployment

一共有七步,等待加载完成,然后输入指令

docker run -p 8900:8900 goweb_deployment

可以看到服务启动,访问浏览器,可以看到如下画面

docker部署goweb项目_第1张图片

你可能感兴趣的:(docker,容器,运维,golang)