Docker安装与Python应用程序的Mysql容器

我有一个容器运行“dockerfile / mysql”,我可以连接和交互。 我正在试图为将从MySQL数据库读取的Python应用程序构build另一个图像。 问题是Python应用程序需要MySQL-python并尝试在安装时进行安装。 因为这个容器不包含mysql服务器,所以我最终得到了;

Downloading/unpacking MySQL-python Downloading MySQL-python-1.2.5.zip (108kB): 108kB downloaded Running setup.py (path:/tmp/pip_build_vagrant/MySQL-python/setup.py) egg_info for package MySQL-python sh: 1: mysql_config: not found Traceback (most recent call last): File "<string>", line 17, in <module> File "/tmp/pip_build_vagrant/MySQL-python/setup.py", line 17, in <module> metadata, options = get_config() File "setup_posix.py", line 43, in get_config libs = mysql_config("libs_r") File "setup_posix.py", line 25, in mysql_config raise EnvironmentError("%s not found" % (mysql_config.path,)) EnvironmentError: mysql_config not found Complete output from command python setup.py egg_info: sh: 1: mysql_config: not found 

这是完全可以理解的。

我应该如何设置我的Python应用程序容器(这是使用SQLAlchemy)从MySQL容器中读取?

谢谢

apt-get install -y libmysqlclient-dev到您的Dockerfile

如果你使用python:3.5-alpine ,你可以通过在你的Dockerfile添加这个来安装mysqlclient

 RUN set -e; \ apk add --no-cache --virtual .build-deps \ gcc \ libc-dev \ linux-headers \ mariadb-dev \ python3-dev \ postgresql-dev \ ; 

所有的Dockerfile都是这样的:

 # Version: 0.0.1 FROM python:3.5-alpine ENV PYTHONUNBUFFERED 1 RUN set -e; \ apk add --no-cache --virtual .build-deps \ gcc \ libc-dev \ linux-headers \ mariadb-dev \ python3-dev \ postgresql-dev \ ; RUN mkdir /djcode WORKDIR /djcode ENV REFRESHED_AT 2017-12-25 ADD requirements.txt /djcode/ RUN pip install --no-cache-dir -r /djcode/requirements.txt RUN pip install uwsgi ADD . /djcode/ EXPOSE 6001