当我根本没有触及我的 .yml 时,为什么我会收到服务依赖性错误?

Why am I getting a service dependency error when I haven't touched my .yml at all?

每当我 运行 docker-compose up -d --build 开始我的项目时,它都会启动我的环境,直到昨天都很好。

在 运行 宁 docker-compose up -d --build 后,我收到这个烦人的错误,上面写着:ERROR: Service 'app' depends on service 'db' which is undefined.

我不确定这是怎么突然发生的,因为我绝对没有对 docker-compose.yml 文件进行任何更改。我已尝试对此进行广泛的故障排除,但无济于事。

我的文件有什么问题?

这是我的 docker-compose.yml 文件:

version: "3.7"
services:
    app:
        build:
            args:
                user: sammy
                uid: 1000
            context: ./
            dockerfile: Dockerfile.dev
        working_dir: /var/www/
        environment:
            - COMPOSER_MEMORY_LIMIT=-1
        depends_on:
            - db
        volumes:
            - ./:/var/www
        networks:
            - lahmi

    myApp:
        image: mysql:5.7
        environment:
            MYSQL_DATABASE: ${DB_DATABASE}
            MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
            MYSQL_PASSWORD: ${DB_PASSWORD}
            MYSQL_USER: ${DB_USERNAME}
            SERVICE_TAGS: dev
            SERVICE_NAME: mysql
        volumes:
            - dbdata:/var/lib/mysql
            - ./docker-compose/mysql/my.cnf:/etc/mysql/my.cnf
            - ./docker-compose/mysql/init:/docker-entrypoint-initdb.d
        ports:
            - 3307:3306
        networks:
            - lahmi

    nginx:
        image: nginx:alpine
        ports:
            - 8005:80
        depends_on:
            - db
            - app
        volumes:
            - ./:/var/www
            - ./docker-compose/nginx:/etc/nginx/conf.d/
        networks:
            - lahmi

networks:
    lahmi:
        driver: bridge

volumes:
    dbdata:
        driver: local

docker-compose.yml 中没有名为 db 的服务。将 db 更改为 myApp(数据库服务)可能有效。

如果您在服务 app 中将数据库引用为 db,则必须使用链接配置将 myApp 更改为 db 或更改服务名称 myAppdb.

https://docs.docker.com/compose/compose-file/compose-file-v3/#links