gpt4 book ai didi

python - 如何从现有的Flask项目构建docker镜像?

转载 作者:行者123 更新时间:2023-12-02 21:05:46 25 4
gpt4 key购买 nike

我在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")

最佳答案

Pycharm不会创建Dockerfiledocker-compose.yaml文件,这是您的责任。这两个文件在您正在关注的教程中链接:

  • https://github.com/ErnstHaagsman/flask-compose/blob/master/docker-compose.yml
  • https://github.com/ErnstHaagsman/flask-compose/blob/master/Dockerfile

  • 这些文件应位于您的项目根目录。
    简而言之, Dockerfile描述了您的应用程序的运行时环境(图像),并且compose文件告诉docker如何创建和启动该图像。在大多数实际情况下,这两个文件都将被修改以满足您的需求,因此很难自动生成。

    然后,您可以按照“配置Pycharm”部分设置远程解释器(Docker)。

    还有更多注意事项:
  • 仅在pycharm专业版中支持Docker解释器。
  • 您还必须自行安装并启动docker和docker-compose。
  • 关于python - 如何从现有的Flask项目构建docker镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58166089/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com