马科斯高地山脉
Python 3.6。3.
docker撰写。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
要求。文本
mysqlclient==1.3.12
...
当我运行命令docker-comment build时,我得到了错误:
命令“python setup.py egg_info”在/tmp/pip install jsegcbha/mysqlclient中失败,错误代码为1/
错误:服务“芹菜”构建失败:命令“/bin/sh-c pip安装-r /home/requirements.txt”返回非零代码: 1
完全回溯:
收集mysqlClient==1.3.12(来自-r /home/requirements.txt(第8行))
正在下载https://files.pythonhosted.org/packages/6f/86/bad31f1c1bb0cc99e88ca2adb7cb5c71f7a6540c1bb001480513de76a931/mysqlclient-1.3.12.tar.gz(89kB)
命令pythonsetup.pyegg_info的完整输出:
/bin/sh:mysql_config:未找到
回溯(最近一次呼叫最后一次):
file"/tmp/pip-Instet-jsecbha/mysqlClient/setup.py",第17行,元数据,选项=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中
raise环境错误(“%s未找到”%)(mysql\u config.path,)
操作错误:未找到mysql\u配置
实际上,mysql_config是通过path/usr/local/bin进行配置的,这个路径是在$path中设置的
我已经尝试在Dockerfile中运行pip安装--升级setuptools。这没有帮助。
ENV PATH /usr/local/bin:$PATH在Dockerfile没有帮助。
非常感谢!!!!!!!!!!!!!!
问题在于您的Dockerfile
python:3.6-alpine是python的简化版本,mysqlclient
正在寻找开发头和库。
这是官方页面Pypi: mysqlClient
先决条件:您可能需要安装Python和MySQL开发头和库。。。
我的解决方案:
在我的例子中,我使用了slim版本,我改为Python3(3.7),它可以工作。
#FROM python:3-slim
FROM python:3
我也有同样的问题在命令行上试试这个
brew install mysql-connector-c
brew install mysql
brew unlink mysql-connector-c
sudo pip install pymysql
sudo pip install mysqlclient