我正在尝试运行依赖于 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] 无法分配请求的地址)")