docker - docker-compose 在构建过程中无法连接到容器
问题描述
我尝试设置一个 Shopware Docker 容器进行开发。我为 Shopware 初始化过程设置了一个 Dockerfile,但是每次我运行构建过程 shopware 时都会返回此错误消息:
mysql -u 'root' -p'root' -h 'dbs' --port='3306' -e "DROP DATABASE IF EXISTS `shopware6dev`" 错误 2005 (HY000): 未知的 MySQL 服务器主机 'dbs' (-2 )
我认为docker在所有构建过程完成后设置默认网络,但我需要在所有容器准备好之前连接。depends_on 选项什么也没带来。我希望任何人都有解决这个问题的想法。
这是我的 docker-compose 文件:
version: '3'
services:
shopwaredev:
build:
context: ./docker/web
dockerfile: Dockerfile
volumes:
- ./log:/var/log/apache2
environment:
- VIRTUAL_HOST=shopware6dev.test,www.shopware6dev.test
- HTTPS_METHOD=noredirect
restart: on-failure:10
depends_on:
- dbs
adminer:
image: adminer
restart: on-failure:10
ports:
- 8080:8080
dbs:
image: "mysql:5.7"
volumes:
- ./mysql57:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=shopware6dev
restart: on-failure:10
nginx-proxy:
image: solution360/nginx-proxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./ssl:/etc/nginx/certs
restart: on-failure:10
这是我用于 web shopwaredev 容器的 dockerfile:
FROM solution360/apache24-php74-shopware6
WORKDIR /var/www/html
RUN rm index.html
RUN git clone https://github.com/shopware/development.git .
RUN cp .psh.yaml.dist .psh.yaml
RUN sed -i 's|DB_USER: "app"|DB_USER: "root"|g' .psh.yaml
RUN sed -i 's|DB_PASSWORD: "app"|DB_PASSWORD: "root"|g' .psh.yaml
RUN sed -i 's|DB_HOST: "mysql"|DB_HOST: "dbs"|g' .psh.yaml
RUN sed -i 's|DB_NAME: "shopware"|DB_NAME: "shopware6dev"|g' .psh.yaml
RUN sed -i 's|APP_URL: "http://localhost:8000"|APP_URL: "http://shopware6dev.test"|g' .psh.yaml
RUN ./psh.phar install
解决方案
推荐阅读
- python - 无法将 html 转换为 JSON
- python - 如何在打开具有 HTML 标签的文本文件时使用替换命令?
- swift - 如何在 Swift 中的 Structure 中声明特定协议?
- yarnpkg - Yarn 默认使用 .yarn/releases/yarn 吗?
- php - 我正在尝试使用嵌套循环来获取子类别,但我以错误结尾“此集合实例上不存在属性 [类别]”
- webrtc - webrtc 移动客户端连接到不同网络时没有音频
- c# - ASP NET 如何在某些条件下显示部分页面?
- php - Laravel 中的 Ldap 绑定消息
- javascript - SOCKET.IO - console.log 正在打印所需的输出,但不是 io.emit
- c - ebpf bpf_get_socket_uid 错误:insn[0].code 0x85 的 relo 无效