我有两个毫不相干的服务A和B,通过shell的方式执行ci,通过docker-compose部署服务,以下是我的ci内容 这是我其中一个docker-compose.yml内容 当我执行A服务的ci时,会把我B服务给down掉,反过来也一样,我目前找不到问题的所在
Type
Build Failure
Discussion
这感觉跟OneDev没有太大关系,你试着直接在命令行下运行你的这些命令,问题可能也是一样的。
我在我的服务器上重复了这些命令,并不会将我的B服务down掉
我对docker-compose不太熟悉,这里选项 -f docker-compose.yml是在当前目录中搜索这个文件吗?感觉down和up实际使用了两个不同的文件。如果不同时运行多个CI任务,这个问题还会出现吗?
-f docker-compose.yml
也可以在执行down的前后打印docker-compose.yml文件的内容看看是否真的是期望的内容。
我执行的是单个ci任务, -f docker-compose.yml 是指定配置文件,我也曾试过这样做,但是down执行前后的docker-compose.yml 都是我期望的内容,但它仍然停止了我另一个服务的运行
docker-compose.yml
能不能创建一个示例项目来复现这个问题?否则很难帮助到你。
测试了两个简单的docker-compose项目,docker-compose默认使用当前目录名称作为项目名称。因为在onedev中CI运行在形如 /onedev-build/<job uuid>/workspace的目录中,所以对所有的项目docker-compose默认都会使用workspace作为项目名称,这样可能会导致不同项目之间的干扰。要解决这个问题,可以为docker-compose命令指定项目名称,比如:
docker-compose -p @project_path@ down (老版本用@project_name@)
Open
Closed
好的,万分感谢:pray:
我有两个毫不相干的服务A和B,通过shell的方式执行ci,通过docker-compose部署服务,以下是我的ci内容 这是我其中一个docker-compose.yml内容 当我执行A服务的ci时,会把我B服务给down掉,反过来也一样,我目前找不到问题的所在