Docker 部署 go项目

主要参考:docker部署golang web服务

一、Dockerfile

原文没有涉及需要额外包的情况。当需要额外包的时候,由于已经被墙,所以需要设置代理。

FROM golang:1.15.4

MAINTAINER "leimu"
WORKDIR /usr/search
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY=https://goproxy.cn,direct
ADD . /usr/search
RUN go mod init search
RUN go build main.go
EXPOSE 8080
ENTRYPOINT ["./main"]

使用go mod模式来处理包的依赖。

二、启动

1、制作docker镜像

docker build -t search .

docker build 构建镜像
search 镜像名字为search
. (点号) dockerfile目录为当前目录

2、查看镜像

docker images search

3、运行docker容器

docker run -p 18080:8080 -d search

docker run 运行docker镜像
-p 18080:8080 将宿主机(也就是本机)的18080端口映射到容器的8080端口,此处需要先确认本机的18080端口并未被占用,容器的8080端口是否在监听。
通过lsof -i:18080查看占用该端口的进程
search 镜像名(也可以是镜像id)
-d 后台运行

4、查看容器运行情况

1、docker查看容器

docker ps -a

2、测试容器服务

curl http://localhost:18080/

3、如果启动失败,查看日志

原文地址:https://www.cnblogs.com/leimu/p/14699390.html