为什么这会有所不同? docker/mysql/apache2

问题描述 投票:0回答:1

我几乎无法解释发生了什么,但请检查一下...我在这里使用 Docker 以及 MySQL、PHP 和 apache2。

如果我像这样立即启动一切,那就会有所不同:

docker-compose up mysql apache2

或者如果我决定首先在终端窗口中仅启动 mysql,如下所示:

docker-compose up mysql

并在单独的终端窗口 apache2 中:

docker-compose up apache2

如果我一次全部启动,会发生很多次,最终会出现以下错误:

Missing Tablespace

有时使用会有帮助

docker-compose down

接着是另一个

docker-compose up mysql apache2

但大多数时候错误是一致的。我可以通过在单独的窗口中启动系统(首先是 mysql)来始终避免此错误 - 一旦它启动,我就启动 apache2。

这怎么可能是一回事?我没有足够的 Docker 知识来理解此类问题,但我愿意。在我看来,在实际应用程序收到请求之前,apache 不应该与 MySQL 通信?

非常感谢任何建议 - 如果需要更多信息,请告诉我。

mysql docker apache2
1个回答
1
投票

docker-compse.yaml 中有一个名为

depends_on
的选项来定义启动服务的要求顺序:

version: '3.4'
services:
  mysql:
    image: mysql:5.6
  apache2:
    image: httpd:alpine
    depends_on:
      - mysql

然后,您应该使用

docker-compose up
来启动两者。

参考:https://docs.docker.com/compose/compose-file/#depends_on

© www.soinside.com 2019 - 2024. All rights reserved.