当我根本没有触及我的 .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
或更改服务名称 myApp
到 db
.
https://docs.docker.com/compose/compose-file/compose-file-v3/#links
每当我 运行 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
或更改服务名称 myApp
到 db
.
https://docs.docker.com/compose/compose-file/compose-file-v3/#links