开发平台win10,服务器centos7.5
编写dockerfile
# scratch 为空镜像,因为golang的build的可执行文件不需要什么环境 FROM scratch # 作者署名 MAINTAINER liusiming <liusm1111@outlook.com> # 添加一个证书,要不然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