在docker compose中使用带depends_on的条件不会导致任何事情发生

vfwfrxfs  于 2023-04-29  发布在  Docker
关注(0)|答案(1)|浏览(140)

下面是我的代码:

version: '3.8'

services:
  redis:
    image: redis:alpine
    ports:
      - 6379:6379

  express:
    image: node:lts-alpine
    container_name: nodejs
    build:
      context: /
    command: npm run dev
    restart: always
    environment:
      NODE_ENV: development
    ports:
      - 3000:3000
    volumes:
      - ./:/src
    depends_on:
      database:
        condition: service_completed_successfully
      redis:
        condition: service_completed_successfully

  database:
    image: postgres:15-alpine
    restart: always
    environment:
      POSTGRES_PASSWORD: password
      POSTGRES_USER: admin
      POSTGRES_DB: ***
    ports:
      - 5432:5432
  

  db-admin:
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: admin@example.com
      PGADMIN_DEFAULT_PASSWORD: password
    ports:
      - 8081:80
    volumes:
      - ./pgadmin/servers.json:/pgadmin4/servers.json

docker-compose运行后,它只完成到db-admin,而不是express,然后停止在那里。但是,如果我在Docker Desktop中手动运行express容器,它将开始运行。有什么帮助吗?

nhaq1z21

nhaq1z211#

如果你的逻辑看起来更复杂,那么最好有一个脚本来执行所有的验证并返回true或false。
在图像本身中添加这样的脚本作为实用程序脚本。

相关问题