我在Pycharm上运行了一个flask项目
flask-app\
app\
Database.py
static\
tempalates\
home.html
objects.html
template.html
app.py
requirements.txt
ven\
Dockerfile
我想在pycharm中对现有项目进行docker化。我已尝试在Docker-Compose: Getting Flask up and running 中添加新的解释器,但是我没有工作。
我已经创建了docker文件并尝试在容器中运行它,这就是我得到的:
web_1 | Traceback (most recent call last):
web_1 | File "/usr/local/lib/python3.7/site-packages/flask/cli.py", line 240, in locate_app
web_1 | __import__(module_name)
web_1 | File "/opt/project/app/app.py", line 4, in <module>
web_1 | from app import Database
web_1 | ImportError: cannot import name 'Database' from 'app' (/opt/project/app/app.py)
很明显,识别app.py所在的文件夹app出了问题。
这是我的docker文件配置:
FROM python:3
EXPOSE 5000
MAINTAINER Khalil Mebarkia
COPY app /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD python app.py
还有app.py
from flask import Flask, render_template, request
import math
from flask_bootstrap import Bootstrap
from app import Database
db = r'database.db'
app = Flask(__name__)
bootstrap = Bootstrap(app)
if __name__ == "__main__":
app.run(debug=True, host="0.0.0.0")
@app.route("app/")
def home():
return render_template("home.html")
答案 0 :(得分:2)
Pycharm不会创建Dockerfile
或docker-compose.yaml
文件,这是您的责任。这两个文件在您正在关注的教程中链接:
这些文件应位于您的项目根目录。
简而言之,Dockerfile
描述了您的应用程序的运行时环境(图像),撰写文件告诉docker如何创建和启动该图像。在大多数实际情况下,这两个文件都将被修改以满足您的需求,因此很难自动生成。
然后,您可以按照“配置Pycharm”部分设置远程解释器(Docker)。
结合更多注意事项: