小编and*_*rew的帖子

Docker 无法将应用程序连接到 MySQL

我正在尝试运行依赖于 mysql 的集成测试(在 python 中)。目前它们依赖于在本地运行的 SQL,但我希望它们依赖于在 docker 中运行的 MySQL。

Dockerfile 的内容:

FROM continuumio/anaconda3:4.3.1
WORKDIR /opt/workdir
ADD . /opt/workdir
RUN python setup.py install
Run Code Online (Sandbox Code Playgroud)

Docker Compose 的内容:

version: '2'

services:
   mysql:
     image: mysql:5.6
     container_name: test_mysql_container
     environment:
       - MYSQL_ROOT_PASSWORD=test
       - MYSQL_DATABASE=My_Database
       - MYSQL_USER=my_user
       - MYSQL_PASSWORD=my_password
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     expose:
       - "3306"

   my_common_package:
     image: my_common_package
     depends_on:
       - mysql
     restart: always
     links:
       - mysql

volumes:
  db_data:
Run Code Online (Sandbox Code Playgroud)

现在,我尝试使用以下命令在我的包中运行测试:

docker-compose run my_common_package python testsql.py
Run Code Online (Sandbox Code Playgroud)

我收到错误

pymysql.err.OperationalError: (2003, "无法连接到 MySQL 服务器上的 'localhost' ([Errno 99] 无法分配请求的地址)")

python mysql docker dockerfile docker-compose

2
推荐指数
1
解决办法
6551
查看次数

标签 统计

docker ×1

docker-compose ×1

dockerfile ×1

mysql ×1

python ×1