[英]docker-compose failing sayin image doesn't exist
我正在尝试进行一个非常困难的多步骤 docker 设置,并将其变成一个简单的 docker-compose。 我之前没有真正使用过 docker-compose。 我习惯于使用 dockerfile 来构建和映像,然后使用类似
docker run --name mysql -v ${PWD}/sql-files:/docker-entrypoint-initdb.d ... -h mysql -d mariadb:10.4
然后在构建简单的 dockerfile 后以相同的方式运行 Web 应用程序。 试图将这些组合成一个 docker-compose.yml 文件似乎相当困难。 我将发布我的 docker-compose.yml 文件,编辑以删除密码等和我收到的错误,希望有人能找出它失败的原因,因为我不知道......
docker-compose.yml
version: "3.7"
services:
mysql:
image: mariadb:10.4
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: passwordd1
MYSQL_ALLOW_EMPTY_PASSWORD: "true"
volumes:
- ./sql-files:/docker-entrypoint-initdb.d
- ./ssl:/var/lib/mysql/ssl
- ./tls.cnf:/etc/mysql/conf.d/tls.cnf
healthcheck:
test: ["CMD", "mysqladmin ping"]
interval: 10s
timeout: 2s
retries: 10
web:
build: ./base/newdockerfile
container_name: web
hostname: dev.website.com
volumes:
- ./ssl:/etc/httpd/ssl
- ./webfiles:/var/www
depends_on:
mysql:
condition: service_healthy
ports:
- "8443:443"
- "8888:80"
entrypoint:
- "/sbin/httpd"
- "-D"
- "FOREGROUND"
在终端窗口中运行docker-compose up
时出现的错误是...
服务 'web' 依赖于未定义的服务 'mysql'。
为什么mysql
是未定义的。 它是 yml 文件中的第一个定义,并具有与之关联的健康检查。 此外,它失败得非常快,比如在几秒钟内,所以不可能所有运行状况检查都运行并失败,而且我在终端窗口中没有收到任何其他错误。 我执行docker-compose up
并在几秒钟内收到该错误。 任何帮助将不胜感激。 谢谢你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.