docker在alpine linux中构建python django应用程序时出错

问题描述 投票:1回答:1
  1. 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"]


  1. 要求

openpyxl == 2.4.11 请求== 2.18.4 Django的== 2.0.2 的mysql == 1.3.12


  1. 构建错误

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

感谢@danblackmariadb-connector-c-dev帮助我解决OSError: mysql_config not found错误。


  1. 新的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"]


  1. 新问题

但是出现了一个新问题,当docker run ...运行时,Docker什么都没打印,没有日志,没有错误。它应该有如下打印日志

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吗?请帮忙!非常感谢。

mysql django docker alpine
1个回答
3
投票

你需要安装mariadb-connector-c-dev alpine软件包,它提供了python软件包用来识别它需要链接的库的mysql_config

© www.soinside.com 2019 - 2024. All rights reserved.