go项目部署到服务器上

  1. 生成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可执行文件啦

  2. 将项目打包成镜像

    在项目根目录下需要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 .
  3. 传输

    将镜像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
  4. 创建容器,创建一个以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
posted @   落樱纷飞  阅读(259)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示