Goland远程调试Linux代码

一、rsync简介及安装 #

首先我们需要将Windows主机上的代码上传至Linux主机,并且希望每次修改代码后,Linux端可以与Windows端保持同步。rsync这款工具解决了这个问题,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输量。这个工具需要在两处安装:

  1. Linux主机安装rsync服务端,直接使用命令:apt-get install -y rsync
  2. Windows本机安装rsync客户端,到 https://github.com/itefixnet/cwrsync-client/releases/download/v6.4.7/cwrsync_6.4.7_x64_free.zip下载并解压

该工具需要与Goland结合使用,具体操作方法见下文。

1、配置支持代码上传服务器

点击打开配置界面

1、服务器执行下面命令安装go环境生成dlv可执行文件 #
# 安装go
wget https://golang.google.cn/dl/go1.20.6.linux-amd64.tar.gz 

tar -C /usr/local -xzf go1.20.6.linux-amd64.tar.gz

vi /etc/profile

# 添加下面内容到末尾
export PATH=$PATH:/usr/local/go/bin

source /etc/profile

# 安装dlv
go install github.com/go-delve/delve/cmd/dlv@latest
2、代码上传到服务器执行以下编译命令 #
go build -tags server -gcflags=all="-N -l"
3、在docker-compose.yml中增加开放2345端口,增加映射组件文件、dlv文件到容器内部 #
volumes:
  - /home/check1/master/master:/app/master # 需要将上面编译的组件代码映射替换容器内部组件
  - /root/go/bin/dlv:/app/dlv # 将dlv文件映射入容器
ports:
  - "2345:2345" # 开放2345端口
4、启动容器,进入容器内部,启动代码调试 #
# 进入容器
docker exec -it gemaster bash

# 开启监听 attach 参数代表 监听的go程序运行的进程id
dlv attach 1 --headless --listen=:2345 --api-version=2 --accept-multiclient --log
5、使用goland连接调试代码 #

直接启动就能调试网络版组件代码