Skip to content

depends_on: condition: service_healthy is not respected when using volumes_from #9843

Closed
@oalagtash

Description

@oalagtash

Description

When running docker compose up -d test service will be started without waiting for db to be healthy. However, if I remove the section volumes_from, the depends_on works as expected.

Steps to reproduce the issue:

In docker-compose.yml:

version: "3.9"
services:
  db:
    image: redis

    healthcheck:
      test: "exit 0"
  test:
    image: nginx
    volumes_from:
      - db
    depends_on:
      db:
        condition: service_healthy

run: docker compose up -d

Describe the results you received:

❯ docker compose down --remove-orphans && docker compose up -d && docker compose ps                                                                                                                          ─╯
[+] Running 3/3
 ⠿ Network in-buildsupport_default   Created                                                                                                                                                               0.0s
 ⠿ Container in-buildsupport-db-1    Started                                                                                                                                                               0.3s
 ⠿ Container in-buildsupport-test-1  Started                                                                                                                                                               0.5s
NAME                     COMMAND                  SERVICE             STATUS               PORTS
in-buildsupport-db-1     "docker-entrypoint.s…"   db                  running (starting)   6379/tcp
in-buildsupport-test-1   "/docker-entrypoint.…"   test                running              80/tcp

As shown in the logs: test is already running while db is still starting.

Describe the results you expected:

test service should wait for db to be healthy before starting.
Should look like this:

❯ docker compose down --remove-orphans && docker compose up -d && docker compose ps                                                                                                                          ─╯
[+] Running 2/3
 ⠿ Network in-buildsupport_default   Created                                                                                                                                                               0.0s
 ⠿ Container in-buildsupport-db-1    Waiting                                                                                                                                                               4.8s
 ⠿ Container in-buildsupport-test-1  Created                                                                                                                                                               0.0s

Output of docker compose version:

❯ docker compose version                                                                                                                                                                                     
Docker Compose version v2.10.2

Output of docker info:

❯ docker info                                                                                                                                                                                            
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc., v0.9.1)
  compose: Docker Compose (Docker Inc., v2.10.2)
  extension: Manages Docker extensions (Docker Inc., v0.2.9)
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0)
  scan: Docker Scan (Docker Inc., v0.19.0)

Server:
 Containers: 2
  Running: 0
  Paused: 0
  Stopped: 2
 Images: 14
 Server Version: 20.10.17
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
 runc version: v1.1.4-0-g5fd4c4d
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.10.124-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
 CPUs: 4
 Total Memory: 7.765GiB
 Name: docker-desktop
 ID: T2HG:TINU:ZJCW:QRAX:YMYW:7HDQ:DIQ4:4LG6:NJC3:DFCQ:AVNX:LCUK
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5000
  127.0.0.0/8
 Live Restore Enabled: false

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions