go项目部署到服务器上
-
生成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 # 设置时区为上海 RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 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命令将项目源代码打包成镜像yourimg,版本号为1.0.0
docker build -t yourimg:1.0.0 . -
传输
将镜像yourimg:1.0.0打包成tar包yourimg.tar,方便传输
docker save -o yourimg.tar yourimg:1.0.0 跨服务器传输文件,将本地的tar传到目标服务器上
sudo scp yourimg.tar target_server@ip:/home/ubuntu 加载tar包存入本地docker镜像
sudo docker load -i yourimg.tar -
创建容器,创建一个以yourimg:1.0.0为镜像的容器,容器名为yourimg_service
sudo docker run -p 11888:8888 --restart=always --log-opt max-size=50m --log-opt max-file=3 --log-driver json-file --name yourimg_service \ -v /cubd/project/yourimg_service/runtime/resource:/opt/app/resource \ -v /cubd/project/yourimg_service/runtime/log:/opt/app/log \ -d yourimg:1.0.0 赋予容器内的main脚本权限(先将容器内main拷贝到本地,本地赋权限再上传到容器内。
sudo docker cp yourimg_service:/opt/app/main /home/ubuntu/yourimgpush/ sudo chmod 777 /home/ubuntu/yourimgpush/main sudo docker cp /home/ubuntu/yourimgpush/main yourimg_service:/opt/app/ 启动容器
sudo docker start yourimg_service 查看容器
sudo docker ps | grep yourimg_service
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了