使用 docker-compose Mysql + App

p.m*_*aes 5 mysql docker dockerfile docker-compose

我正在尝试使用 docker 链接两个容器。

MySQL Dockerfile:

...
EXPOSE 3306
CMD ["/usr/sbin/mysqld"]
Run Code Online (Sandbox Code Playgroud)

应用程序Dockerfile:

...
ADD . /services
CMD ["python", "-u", "services/run_tests.py"]
Run Code Online (Sandbox Code Playgroud)

在我使用的 run_tests.py 中

self.db = MySQLdb.connect(host="mysql", user="XYZ", passwd="XYZ", db="TEST_DB")
Run Code Online (Sandbox Code Playgroud)

在我的 docker-compose.yml 中:

app:
   build: .
   links:
      - mysql
mysql:
   image: XYZ/KJM
Run Code Online (Sandbox Code Playgroud)

当我运行时,docker-compose up我无法连接到 mysql 容器。

OperationalError: (2003, "无法连接到 MySQL 服务器上的 'rds' (111)")

编辑:我不知道我是否需要等待一点点来启动应用程序泊坞窗。我想当应用程序尝试连接时,MySQL 未启动。

dne*_*hin 0

我认为你是对的,你需要等待。您可以循环尝试连接,然后重试几次,并在每次尝试之间进行短暂的睡眠。