Open lucacome opened 7 years ago
I'm guessing it's because of this set to true: https://github.com/docker/libcompose/blob/master/docker/service/service.go#L242
I can confirm this was introduced by this commit: https://github.com/docker/libcompose/commit/f5c34b0a35164a0f6d8b861df32b2e4e54deb847
@xihan88
Simple Expected Example with docker compose:
---
version: '2'
services:
test.svr:
container_name: test.svr
image: alpine:latest
command: sleep 10000
$ docker-compose up -d
Creating network "foo_default" with the default driver
Creating test.svr ...
Creating test.svr ... done
$ docker-compose up -d
test.svr is up-to-date
Then make a change to the compose file ports ["8080:8080"]
for example
$ docker-compose up -d
Recreating test.svr ...
Recreating test.svr ... done
Libcompose is no longer following this behavior it is now barfing out an error on second up.
Is anything happening about this?
@lucacome This issue is due to the problem from L331-L347 in this file https://github.com/docker/libcompose/blob/57bd716502dcbe1799f026148016022b0f3b989c/docker/service/service.go#L331 because if a container is not recreated, it shouldn't be connecting to the previous network and starting again. I will make a simple fix for it. @vito-c In the previous version before my PR, a service will always be recreated (because of hashing an array of addresses) hence this issue won't show itself. I'm glad it brings out this important bug.
I can't seem to find a way to replicate the behavior of
docker-compose up -d
, where if the container has not changed, nothing happens. Instead, I get:ERRO[0006] Failed to start: rethinkdb : Error response from daemon: endpoint with name rethinkdb already exists in network ubuntu_default
Am I doing something wrong?