Mythologyli / zju-connect

ZJU RVPN 客户端的 Go 语言实现
GNU Affero General Public License v3.0
338 stars 23 forks source link

[WIP]Build: docker support #17

Closed 117503445 closed 1 year ago

117503445 commented 1 year ago

添加 DockerDocker Compose 的支持, #16

117503445 commented 1 year ago

我先自己试用一段时间,如果好用的话再看有无必要进行合并,你们也可以试试

117503445 commented 1 year ago

TODO

futuretech6 commented 1 year ago

个人意见,要用docker的话给个dockerfile现场编就行了,没必要弄到hub上

cxz66666 commented 1 year ago

@117503445 或许你可以拆分成两个pr,一个是关于dockerfile和docker compose,另一个是关于docker image CI部分。docker image最终放到docker hub还是gcr还是ghcr上可能需要进一步讨论,不过我很乐意合并关于dockerfile的pr(XD

一些关于dockerfile的建议:

117503445 commented 1 year ago

@cxz66666

拆分成两个pr

但是 Docker Image CI 是依赖于 Dockerfile 的,我感觉这样拆分不是很合适

docker image最终放到docker hub还是gcr还是ghcr上可能需要进一步讨论

目前还是放在 Docker Hub 上的。这个只要修改 CI 中 Docker metaimages 字段即可。

Dockerfile 的修改(GOPROXY, gcr)

我个人习惯是通过 CI 进行 image 的构建。用户只需要拉取镜像即可,不需要在本地 docker build。开发者大部分时候也不用在本地 build 镜像。也就是说 docker build 基本只发生在 CI 的机器上,所以我一般不在 Dockerfile 中引入这些修改。(如果你觉得需要的话,加上去也没问题

更新go版本到1.20

我看 go.mod 还是 1.19 ..

117503445 commented 1 year ago

我先自己试用一段时间,如果好用的话再看有无必要进行合并,你们也可以试试

我目前体验下来,用 Docker 是比较舒服的。

因为我有很多个设备,所以我是在服务器上运行 zju-connect, 然后设备走服务器的 socks5 代理。我不希望在服务器上配置各种开发环境、编译环境,用预构建的 Docker 镜像就能有效的隔离环境依赖。

cxz66666 commented 1 year ago

@117503445

但是 Docker Image CI 是依赖于 Dockerfile 的,我感觉这样拆分不是很合适

CI 目前的形式由于没有 @Mythologyli 的参与讨论,workflow中的push也跑不起来,所以我还是倾向于先把Dockerfile和docker compose文件合并了。

BTW,你在docker compose中使用的acr registry.cn-hangzhou.aliyuncs.com/117503445-mirror/zju-connect,是基于哪种方式触发构建的,我们或许可以在不使用docker hub的情况下,用acr的服务+海外机器构建整一套CI。

Dockerfile 的修改(GOPROXY, gcr)

个人经验,感觉还是有必要的,希望麻烦加上 😄

更新go版本到1.20

sorry我的问题,目前这样没问题

117503445 commented 1 year ago

今天回去我修改一下, 到时候重新提 PR :)