MacOS High Sierra
Python 3.6.3
搬运工-compose.yml
version: '3'
services:
celery:
container_name: "cache_bot"
build:
context: .
dockerfile: docker/celery/Dockerfile
command: "celery -A cache_bot.app worker --loglevel=info"
volumes:
- ./src:/www
Dockerfile
FROM python:3.6-alpine
RUN apk --update add --no-cache bash gcc libc-dev unixodbc-dev python3-dev
ADD ./src /www
ADD ./requirements.txt /home
WORKDIR /www
RUN pip install -r /home/requirements.txt
requirements.txt
mysqlclient==1.3.12
...
当我运行命令'docker-compose build'时,我收到错误:
命令“python setup.py egg_info”失败,错误代码为1 / tmp / pip-install-jsegcbha / mysqlclient /
错误:服务'celery'无法构建:命令'/ bin / sh -c pip install -r /home/requirements.txt'返回非零代码:1
完整追溯:
收集mysqlclient == 1.3.12(来自-r /home/requirements.txt(第8行))
从命令python setup.py egg_info完成输出:
/ bin / sh:mysql_config:找不到
追踪(最近一次呼叫最后一次):
文件“/tmp/pip-install-jsegcbha/mysqlclient/setup.py”,第17行,in metadata,options = get_config()
文件“/tmp/pip-install-jsegcbha/mysqlclient/setup_posix.py”,第44行,在get_config中libs = mysql_config(“libs_r”)
文件“/tmp/pip-install-jsegcbha/mysqlclient/setup_posix.py”,第26行,在mysql_config中
引发EnvironmentError(“%s not found”%(mysql_config.path,))
OSError:找不到mysql_config
实际上,mysql_config是路径/ usr / local / bin,这个路径是在$ PATH中设置的
我试过 - 在我的Dockerfile中运行pip install --upgrade setuptools。它没有帮助。
ENV PATH / usr / local / bin:Dockerfile中的$ PATH也无济于事。
非常感谢!!!!!!!!!!!!!
答案 0 :(得分:0)
我遇到了同样的问题,请在命令行上尝试
brew install mysql-connector-c
brew install mysql
brew unlink mysql-connector-c
sudo pip install pymysql
sudo pip install mysqlclient
答案 1 :(得分:0)
问题出在您的Dockerfile
中,python:3.6-alpine
是Python的简化版本,而mysqlclient
正在寻找开发标头和库。
这是官方页面Pypi: mysqlclient
先决条件: 您可能需要安装Python和MySQL开发标头和库...
我的解决方案:
在我的情况下,我使用的是修身版,我改用Python 3(3.7),它可以正常工作。
#FROM python:3-slim
FROM python:3