-
生成linux可执行文件main。
首先再windows cmd平台下生成linux可执行的文件
在cmd或者powershell执行以下命令
set GOARCH=amd64 go env -w GOARCH=amd64 set GOOS=linux go env -w GOOS=linux
然后到main.go所在的目录下,正常go build即可
go build main.go
如果想要再切换回windows
go env -w GOARCH=amd64 go env -w GOOS=windows
然后又可以愉快的编译exe可执行文件啦
-
将项目打包成镜像
在项目根目录下需要dockerfile文件
FROM alpine:latest #FROM arm64v8/centos:7 MAINTAINER BigData # 设置时区为上海 RUN apk add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "Asia/Shanghai" > /etc/timezone \ && apk del tzdata ENV APP_RUN_DIR=/opt/app/ WORKDIR ${APP_RUN_DIR} ADD ./main ${APP_RUN_DIR} ADD ./config.yaml ${APP_RUN_DIR} # 设置编码 ENV LANG C.UTF-8 EXPOSE 8888 USER root ENTRYPOINT ["/opt/app/main"]
将项目放在linux平台下,通过docker命令将项目源代码打包成镜像highwaypush,版本号为v1.0.0
docker build -t highwaypush:v1.0.0 .
-
传输
将镜像highwaypush:v1.0.0打包成tar包highwaypush.tar,方便传输
docker save -o highwaypush.tar highwaypush:v1.0.0
跨服务器传输文件,将本地的tar传到目标服务器上
sudo scp highwaypush.tar ubuntu@172.16.2.83:/home/ubuntu
加载tar包存入本地docker镜像
sudo docker load -i highwaypush.tar
-
创建容器,创建一个以highwaypush:v1.0.0为镜像的容器,容器名为highway_push_service
sudo docker run -p 11888:8888 --restart=always --log-opt max-size=50m --log-opt max-file=3 --log-driver json-file --name highway_push_service \ -v /cubd/project/highway_push_service/runtime/resource:/opt/app/resource \ -v /cubd/project/highway_push_service/runtime/log:/opt/app/log \ -d highwaypush:v1.0.0
赋予容器内的main脚本权限(先将容器内main拷贝到本地,本地赋权限再上传到容器内。
sudo docker cp highway_push_service:/opt/app/main /home/ubuntu/miniwaypush/ sudo chmod 777 /home/ubuntu/miniwaypush/main sudo docker cp /home/ubuntu/miniwaypush/main highway_push_service:/opt/app/
启动容器
sudo docker start highway_push_service
查看容器
sudo docker ps | grep highway_push_service