我想部署一个连接(当前在本地运行的) MySQL服务器的小型Python应用程序。在./fzwk-app/中,我用DBController.py创建了一个模块database
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:
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回溯:
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'我的错误在哪里?
发布于 2019-04-29 21:52:34
我通过将Dockerfile更改为
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时更好地概述……
至少现在我得到了我所期望的
_mysql_connector.MySQLInterfaceError: Can't connect to MySQL server on 'localhost' (99)错误,因为它无法连接到我的数据库,但为此,我计划建立一个堆栈与docker-compose不管怎样。
希望这对任何人都有帮助--如果没有,可能会对未来的我有帮助:-)
https://stackoverflow.com/questions/55904444
复制相似问题