一次golang应用的docker部署经历

开发平台win10,服务器centos7.5

编写dockerfile 

# scratch 为空镜像,因为golang的build的可执行文件不需要什么环境
FROM scratch
# 作者署名
MAINTAINER liusiming <[email protected]>
# 添加一个证书,要不然websocket连接会报错 dial:x509: certificate signed by unknown authority,下载地址:https://curl.haxx.se/ca/cacert.pem
ADD cacert.pem /etc/ssl/certs/
# 可执行文件
ADD ticker-server /
#配置文件
ADD config.toml /
# 运行
CMD ["/application"]

写一个build.bat文件,很方便

@echo off
:: 编译linux可执行文件
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build -o application main.go
:: build镜像并指定一个版本
docker build -t username/repository:%1 .
:: 上传到你的dockerhub 仓库(需要梯子)
docker push username/repository:%1
pause

运行build.bat 0.0.1即可

最后是服务下载镜像

docker create \
--restart=always \
--name my_application \
-p 8888:8888 \
-v /application/log:/log \ 
username/application:0.0.5

docker start my_application 

--restart=always 加入服务器重启,自启动
-p 对外开放的端口,这里我有一个rpc服务,对外是8888
-v 挂在日志文件到宿主文件夹 这里是我记录的日志文件夹

查看控制台输出
docker logs my_application 

猜你喜欢

转载自www.cnblogs.com/liusiming001/p/11303003.html