Docker设置与Python应用程序的Mysql容器
问题描述:
我有一个容器运行“dockerfile/mysql”,我可以连接并与之交互。我试图为将从mysql数据库读取的Python应用程序构建另一个映像。问题是Python应用程序需要MySQL-python并尝试在安装时进行安装。因为这个容器不包含mysql服务器,所以我结束了;Docker设置与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
我知道,这样做会解决我的问题,但不会添加一个MySQL服务器到我的应用程序容器?我不想要。 – noisyboiler 2014-09-05 11:45:24
不,它安装客户端,而不是服务器。要安装服务器,“apt-get install -y mysql-server” - 不是你想要的。 – 2014-09-05 12:19:29
不适用于高山地区。 – 2018-01-05 16:07:02