#436  执行docker-compose down时会down掉另一个服务
Closed
chenw opened 2 years ago

我有两个毫不相干的服务A和B,通过shell的方式执行ci,通过docker-compose部署服务,以下是我的ci内容 image.png image_2.png 这是我其中一个docker-compose.yml内容 image_3.png 当我执行A服务的ci时,会把我B服务给down掉,反过来也一样,我目前找不到问题的所在 image_4.png

chenw changed fields 2 years ago
Name Previous Value Current Value
Type
Build Failure
Discussion
Robin Shen commented 2 years ago

这感觉跟OneDev没有太大关系,你试着直接在命令行下运行你的这些命令,问题可能也是一样的。

chenw commented 2 years ago

我在我的服务器上重复了这些命令,并不会将我的B服务down掉

Robin Shen commented 2 years ago

我对docker-compose不太熟悉,这里选项 -f docker-compose.yml是在当前目录中搜索这个文件吗?感觉down和up实际使用了两个不同的文件。如果不同时运行多个CI任务,这个问题还会出现吗?

Robin Shen commented 2 years ago

也可以在执行down的前后打印docker-compose.yml文件的内容看看是否真的是期望的内容。

chenw commented 2 years ago

我执行的是单个ci任务, -f docker-compose.yml 是指定配置文件,我也曾试过这样做,但是down执行前后的docker-compose.yml 都是我期望的内容,但它仍然停止了我另一个服务的运行 image_5.png

Robin Shen commented 2 years ago

能不能创建一个示例项目来复现这个问题?否则很难帮助到你。

Robin Shen commented 2 years ago

测试了两个简单的docker-compose项目,docker-compose默认使用当前目录名称作为项目名称。因为在onedev中CI运行在形如 /onedev-build/<job uuid>/workspace的目录中,所以对所有的项目docker-compose默认都会使用workspace作为项目名称,这样可能会导致不同项目之间的干扰。要解决这个问题,可以为docker-compose命令指定项目名称,比如:

docker-compose -p @project_path@ down (老版本用@project_name@)
Robin Shen changed state to 'Closed' 2 years ago
Previous Value Current Value
Open
Closed
chenw commented 2 years ago

好的,万分感谢:pray:

issue 1 of 1
Type
Question
Priority
Normal
Assignee
Issue Votes (0)
Watchers (3)
Reference
onedev/server#436
Please wait...
Page is in error, reload to recover