首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建自定义Docker镜像,在容器中使用已安装的mysql-connector-python不起作用

创建自定义Docker镜像,在容器中使用已安装的mysql-connector-python不起作用
EN

Stack Overflow用户
提问于 2019-04-29 21:28:30
回答 1查看 332关注 0票数 1

我想部署一个连接(当前在本地运行的) MySQL服务器的小型Python应用程序。在./fzwk-app/中,我用DBController.py创建了一个模块database

代码语言:javascript
复制
class DbController(object):
    def __init__(self):
        self._db_connection = mysql.connector.connect(
            host='localhost',
            user='foo',
            passwd='bar',
            database='mydb'
        )
        self._db_cur = self._db_connection.cursor()
# ...

当在我的开发设备上本地运行./fzwk-app/__init__.py来运行我的小应用程序时,db连接工作得很好。现在我想开始部署到docker容器。首先,我这样设置Dockerfile:

代码语言:javascript
复制
FROM python:3.6
ADD ./fzwk-app/ /
RUN pip3 install mysql-connector
CMD [ "python", "./__init__.py" ]

构建Docker Image工作得很好(docker build -t fzwk-app:0.1 .),但是当我尝试创建和运行一个容器(docker run fzwk-app)时,我得到了以下Python回溯:

代码语言:javascript
复制
Traceback (most recent call last):
  File "./__init__.py", line 21, in <module>
    from database import DbController as db
  File "/database/DbController.py", line 18, in <module>
    import mysql.connector
ModuleNotFoundError: No module named 'mysql'

我的错误在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-29 21:52:34

我通过将Dockerfile更改为

代码语言:javascript
复制
FROM python:3.6
ADD ./fzwk-app/ /fzwk-app/
RUN pip3 install mysql-connector-python
CMD [ "python", "/fzwk-app/__init__.py" ]

所以,似乎是pip install mysql-connector-python做了改变,我猜(尽管我也移动了我的应用程序在图像上的位置,但这更多是为了在做docker exec -it fzwk-app /bin/bash时更好地概述……

至少现在我得到了我所期望的

代码语言:javascript
复制
_mysql_connector.MySQLInterfaceError: Can't connect to MySQL server on 'localhost' (99)

错误,因为它无法连接到我的数据库,但为此,我计划建立一个堆栈与docker-compose不管怎样。

希望这对任何人都有帮助--如果没有,可能会对未来的我有帮助:-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55904444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档