【发布时间】:2017-04-24 11:07:06
【问题描述】:
我正在尝试将我的 docker 应用程序容器连接到本地 mysql,但我收到“没有名为 MySQLdb 的模块”的错误。我的 config.py 文件是:
import os
BASEDIR = os.path.abspath(os.path.dirname(__file__))
SQLALCHEMY_MIGRATE_REPO = os.path.join(BASEDIR, 'db_repository')
SQLALCHEMY_DATABASE_URI = 'mysql+mysqldb://root:@192.168.0.29/test'
DEBUG = True
我的 docker 文件是:
FROM python:2.7-slim
WORKDIR /app
ADD . /app
RUN pip install -r requirements.txt
EXPOSE 9999
ENV NAME flaskCrudAPI
CMD ["python", "run.py"]
我的 requirements.txt 文件包含以下内容:
virtualenv
flask
mysql-server
flask_sqlalchemy
flask_migrate
sqlalchemy
我正在使用以下命令运行应用程序:
docker run -p 9999:9999 flaskcrud
但是我收到了关于找不到 mysqldb 模块的错误。我曾尝试将 python-mysql 和许多其他包添加到 requirements.txt 文件中,但这样一来,即使容器的构建在安装命令中也失败了。我究竟做错了什么?或者我该怎么办?
【问题讨论】:
-
你能用命令行连接吗?喜欢
mysql -h $ip -u root -p -
是的,我已经连接到那里
-
你能分享
docker build $image_name是pip install命令从互联网安装包的详细日志吗? -
是的,
pip install从 Internet 安装软件包。如果需求中没有提到 mysql 客户端(例如“MySQL-python”),则构建不会引发错误。还是你想让我把这些包括在内,然后给你看日志? -
当构建成功并且我尝试使用我创建的 API 发布数据时,我得到了上面提到的错误。
标签: docker ssh containers dockerfile