You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The very first docker rollout service seems to ignore the healthcheck:
$ docker rollout foo
==> Service 'foo' is not running. Starting the service.
Network _example_default Creating
Network _example_default Created
Volume "example_foo-mysql" Creating
Volume "example_foo-mysql" Created
Container example-foo-mysql-1 Creating
Container example-foo-mysql-1 Created
Container example-foo-1 Creating
Container example-foo-1 Created
Container example-foo-mysql-1 Starting
Container example-foo-mysql-1 Started
Container example-foo-mysql-1 Waiting
Container example-foo-mysql-1 Healthy
Container example-foo-1 Starting
Container example-foo-1 Started
You can see that the foo service depends_on the foo-mysql service to be healthy and waits for that. But the foo service itself is only started, without waiting for it to be healthy. And this indeed leads to the docker rollout command to finish even though the foo service is not yet ready to receive requests. In this case accessing the service (via Traefik in this case) yields a 404 until it becomes healthy eventually.
The text was updated successfully, but these errors were encountered:
mbrodala
added a commit
to mbrodala/docker-rollout
that referenced
this issue
Dec 11, 2024
docker rollout foo
docker compose up --no-deps --no-recreate --wait foo
The rollout starts the service, no matter if it was running or not. The compose ... --wait ensures that execution stops until the service is healthy. The --no-deps and --no-recreate avoid pointless overhead and speed up this step since everything is in place already.
The very first
docker rollout service
seems to ignore thehealthcheck
:You can see that the
foo
servicedepends_on
thefoo-mysql
service to be healthy and waits for that. But thefoo
service itself is onlystarted
, withoutwaiting
for it to behealthy
. And this indeed leads to thedocker rollout
command to finish even though thefoo
service is not yet ready to receive requests. In this case accessing the service (via Traefik in this case) yields a 404 until it becomes healthy eventually.The text was updated successfully, but these errors were encountered: