Files
SamWaf/编译说明.md
2023-05-25 09:46:02 +08:00

4.8 KiB
Raw Blame History

vue打包

go-bindata-assetfs.exe -o=vue/vue.go -pkg=vue vue/dist/...

win

直接运行build-releases.bat

linux

//生成普通发行版未upx压缩的 docker run --rm -v "$PWD":/media/sf_SamWaf -w /media/sf_SamWaf -e CGO_ENABLED=1 -e GOPROXY=https://goproxy.cn,direct golang:1.19 go build -v -ldflags="-X SamWaf/global.GWAF_RELEASE=true -X SamWaf/global.GWAF_RELEASE_VERSION_NAME=20230525 -X SamWaf/global.GWAF_RELEASE_VERSION=100 -s -w -extldflags "-static"" -o /media/sf_SamWaf/release/SamWafLinux64.exe main.go

//可调试的centos docker run --rm -v "$PWD":/home/ubuntu/samwaf -w /home/ubuntu/samwaf -e CGO_ENABLED=1 -e GOPROXY=https://goproxy.cn,direct golang:1.19 go build -v -ldflags="-extldflags "-static"" -o /home/ubuntu/samwaf/release/SamWafLinux64.exe main.go

//可调试的local ubuntu docker run --rm -v "$PWD":/home/ubuntu/samwaf -w /home/ubuntu/samwaf -e CGO_ENABLED=1 -e GOPROXY=https://goproxy.cn,direct golang:1.19 go build -v -ldflags="-extldflags "-static"" -o /home/ubuntu/samwaf/release/SamWafLinux64.exe main.go

注意事项

  1. 如果linux使用multipass 需要以下方式开启
启用挂载:
https://multipass.run/docs/set-command#local.privileged-mounts

multipass set local.privileged-mounts=true


挂载目录
1. 挂载目录 
multipass mount C:\huawei\goproject\SamWaf primary:/home/ubuntu/samwaf

2. 校验是否好使
multipass info primary


3。卸载目录
卸载数据卷
$ multipass umount primary

2.远程linux调试

# 远程linux调试
go env -w GOPROXY=goproxy.cn,direct
go install github.com/go-delve/delve/cmd/dlv@latest

emu:
/root/go/bin/dlv --listen=:26667 --headless=true --api-version=2 --accept-multiclient exec ./SamWafLinux64.exe

localubuntu 
/home/ubuntu/go/bin/dlv --listen=:26667 --headless=true --api-version=2 --accept-multiclient exec ./SamWafLinux64.exe

/home/ubuntu/go/bin/dlv --listen=:26667 --headless=true --api-version=2 --accept-multiclient exec ./release/SamWafLinux64.exe

经过wiki后然发现启动的参数有一个--accept-multiclient 的参数,允许多个客户端连接。平时开发的时候一般不会有这样的场景,但是哪怕退出后由于这个参数导致服务已经在阻塞,调试不会终止,把这个参数去掉的话,客服端调试结束后,服务端也就停止服务了。


————————————————
版权声明本文为CSDN博主「liuYinXinAll」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。
原文链接https://blog.csdn.net/liuYinXinAll/article/details/103016871
  1. 一键安装Docker
#1.下载安装脚本 #2.执行安装脚本 #3.加入开机启动 #4.启动docker服务 #5.创建docker组 #6.将当前用户加入docker组
#7.创建配置目录 #7.更新docker组信息 #8.设置自己阿里云镜像加速 #9.重新加载所有系统服务配置 #10.重启docker服务  
#11.开机启动docker服务
$ curl -fsSL get.docker.com -o get-docker.sh \
    && sudo sh get-docker.sh --mirror Aliyun \
    && sudo systemctl enable docker \
    && sudo systemctl start docker \
    && sudo groupadd -f docker \
    && sudo usermod -aG docker $USER \
    && sudo mkdir -p /etc/docker \
    && sudo newgrp docker \
    && sudo echo -e '{\n "registry-mirrors":["https://9zufkov1.mirror.aliyuncs.com"]\n}'>>/etc/docker/daemon.json \
    && sudo systemctl daemon-reload \
    && sudo systemctl restart docker \
    && sudo svstemctl enable docker  
# 查看版本 docker version


  1. 一键安装Docker Compose
# install-compose.yml  

#使用以下方式下载  官网下载连接https://docs.docker.com/compose/install/linux/
# 其他方式下载参考 https://www.cnblogs.com/wtx106/p/15717844.html
#下载稳定版
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

#对二进制文件授权
sudo chmod +x /usr/local/bin/docker-compose

# 查看版本号,测试是否安装成功
docker-compose version 


解决 docker-compose command not found
 
原文链接https://blog.csdn.net/qq_30718137/article/details/108408360
  1. 安装go
1.下载https://golang.google.cn/dl/
2. 解压 tar -C -xzf go1.19.linux-amd64.tar.gz
3.。/go 执行命令
4./home/ubuntu/go/go/bin/go


  1. Multipass 配置


启动运行:管理员模式
.\VM\PSTools\PsExec.exe -s -i "C:\Program Files\Oracle\VirtualBox\VirtualBox.exe"

进入设置环境进行nat环境端口映射
  1. vm C:\Program Files\Oracle\VirtualBox\VBoxManage.exe

调整硬盘大小 "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifymedium --resize 16384 "C:\ProgramData\Multipass\data\virtualbox\vault\instances\primary\ubuntu-22.04-server-cloudimg-amd64.vdi"

  1. 查看变量所在包

编译时候 去掉-s -w

go tool nm .\SamWaf64.exe 查看

windows go tool nm .\SamWaf64.exe >>fuhao.txt