mysql - docker在alpine linux中构建python django应用程序时出错
问题描述
- Dockerfile
FROM python:3.6.5-alpine3.7
WORKDIR /app
ADD . /app
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 10021
CMD ["python", "manage.py", "runserver", "0.0.0.0:10021"]
要求
- openpyxl==2.4.11
- 请求==2.18.4
- Django==2.0.2
- mysqlclient==1.3.12
- 构建错误
Collecting mysqlclient==1.3.12 (from -r requirements.txt (line 4))
Downloading https://mirrors.aliyun.com/pypi/packages/6f/86/bad31f1c1bb0cc99e88ca2adb7cb5c71f7a6540c1bb001480513de76a931/mysqlclient-1.3.12.tar.gz (89kB)
Complete output from command python setup.py egg_info:
/bin/sh: mysql_config: not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-er3m_9t6/mysqlclient/setup.py", line 17, in <module>
metadata, options = get_config()
File "/tmp/pip-install-er3m_9t6/mysqlclient/setup_posix.py", line 44, in get_config
libs = mysql_config("libs_r")
File "/tmp/pip-install-er3m_9t6/mysqlclient/setup_posix.py", line 26, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
OSError: mysql_config not found
感谢@danblack帮助mariadb-connector-c-dev
我解决了OSError: mysql_config not found
错误。
- 新的 Dockerfile
FROM python:3.6.5-alpine3.7
WORKDIR /app
ADD . /app
RUN apk add --no-cache build-base && apk add --no-cache mariadb-connector-c-dev && pip install --no-cache-dir -r requirements.txt && apk del build-base
EXPOSE 10021
CMD ["python", "manage.py", "runserver", "0.0.0.0:10021"]
- 新问题
但是出现了一个新问题,Dockerdocker run ...
运行时什么也没打印,没有日志,没有错误。它应该打印如下日志
Performing system checks...
System check identified no issues (0 silenced).
September 04, 2018 - 15:56:26
Django version 2.0.2, using settings 'xxx.settings'
Starting development server at http://0.0.0.0:10021/
Quit the server with CTRL-BREAK.
有人可以给我看一个完整的 Dockerfile 吗?请帮忙!太感谢了。
解决方案
您需要安装mariadb-connector-c-dev alpine 包,它提供mysql_config
了 python 包用于识别它需要链接的库。
推荐阅读
- python - Is there a way of doing a rectangular shape function positive values?
- python - 使用 BeautifulSoup 编辑 DOCTYPE 标签
- html - 主页中的背景图像不起作用?
- python - 训练 Keras 序列模型时损失没有减少
- python - CSV 上传到数据库似乎不起作用
- python-3.x - 我如何在 python unittest mock 中使用 side_effect 测试除错误之外的错误?
- swift - 完成处理程序导致不调用 Deinit
- python-3.x - 如何查看两个不同元组列表中的元素是否匹配
- ag-grid - Ag-Grid onGridReady 没有获取参数?
- visual-studio - 添加 Nuget 包时,Visual Studio 2019“检索信息失败”