Go项目通过ubuntu系统进行打包

sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz 
  • 添加环境变量
sudo vim ~/.profile

export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin


source ~/.profile

这个很重要,编译时需要相关的编译工具和库

sudo apt install build-essential  # 安装编译工具和库
  • 修改go环境变量
go env -w GOPROXY=https://goproxy.cn,direct
  • 安装相关程序,否则打包的时候会报错
sudo apt-get install libzmq3-dev

也可以安装以下依赖,通过make 进行打包

sudo apt install -y libtool pkg-config build-essential \
    autoconf automake uuid-dev
sudo apt install -y libzmq3-dev libzmq5

# make 命令只不过需要配合Makefile一起使用,Makefile需要自行编写
make build
# 编译好的二进制在./cmd/下
# 编译docker镜像
sudo make docker
  • go mod子命令,下面命令中需要执行下载相关依赖
//初始化项目的go.mod文件
go mod init
//生成 Vendor 目录
go mod vendor
//删除错误或者不使用的 Modules
go mod tidy
//验证依赖是否正确
go mod verify
//清理 Modules 缓存
go clean -modcache
//下载项目依赖的 modules 到本地 Cache
go mod download
//编辑 go.mod 文件,选项有 -json、-require 和 -exclude
go mod edit
# e.g.
go mod edit -replace=golang.org/x/crypto@v0.0.0=github.com/golang/crypto@latest
  • 在main同级目录下,执行:
go build -o app main.go

app是打包后生成的名字

  • 前端打包通过docker部署

docker-compose.yml

version: "3"
services: #指定服务名称
  vue_test: #vue前端服务 
    container_name: vue-demo
    image: nginx:1.9.0 #nginx镜像
    ports: #避免出现端口映射错误,建议采用字符串格式
      - "8088:8080" ## 左侧端口是容器对外端口,也就是我们浏览器访问的端口,右侧端口为nginx的监听端口,下面配置文件中会说明
    volumes:
      - ./baize-ui/dist/:/usr/share/nginx/html/ ## 指定根html的文件目录
      - ./default.conf:/etc/nginx/conf.d/default.conf ## 指定nginx的配置文件
    restart: always ## 自动重启

default.conf

server {
    listen       8080; ## nginx监听端口,对应docker-compose端口映射中右侧的端口
    server_name  localhost;

    gzip on;
    gzip_min_length 1k;
    gzip_http_version 1.0;
    gzip_comp_level 1;
    gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
    gzip_disable "MSIE [1-6].";
    gzip_vary on;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   /usr/share/nginx/html; ## 对应docker-compose文件映射的跟html文件路径
        try_files $uri $uri/ @router;
        index  index.html index.htm;
        error_page 405 =200 http://$host$request_uri;
    }

    location ~ /data/ {
        root /data/; #磁盘的目录路径,一般用于访问静态文件
    }
	location /prod-api/{ #/prod-api为访问后端服务统一前缀
    proxy_pass http://192.168.31.12:8082/; #后端服务地址
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size    100m;
      }

    location @router {
        rewrite ^.*$ /index.html last;
    }
    
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root  /usr/share/nginx/html;
    }
}

进行打包

docker-compose up -d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值