gpt4 book ai didi

python - 使用 Makefile、Docker 和 Python 部署到 heroku

转载 作者:行者123 更新时间:2023-12-01 06:25:45 25 4
gpt4 key购买 nike

对于一个学校项目,我想在 Heroku 上部署我们的应用程序。该应用程序由前端组成,用reactjs制作,编译成静态html,然后由后端提供服务,后端还处理API和其他一切。

dockerfile 工作正常,在存储库中时,启动 make docker并且图像将被构建并启动。继续localhost:8080您应该会看到登录提示。如果出现错误,那么您需要一个包含以下内容的 .env 文件

FLASK_DEBUG=True
FLASK_SECRET_KEY=ThisIsADevelopmentKey

FRONT_STATIC_FOLDER=../../frontend/build

DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=

然后使用docker run --env-file .env --name pymatcha --restart=always -p 8080:5000 -d pymatcha再次启动图像

问题是,当我推送到 PR 时,Heroku 创建了一个预览应用程序,但我收到了 Python 错误。要么完全缺少 python3.7,要么缺少 venv 或 Ensurepip。为了解决这个问题,我尝试使用 Aptfile 构建包添加 Aptfile,但它不起作用。将 Python 构建包向上移动。

有谁知道更好的解决方案可以轻松部署到我的项目的heroku?要么在heroku的构建过程中使用我们的makefile,要么在travis中将docker镜像推送到heroku?

关于我的问题的有用链接: Repository

Current Heroku PR

Frontend folder

Backend folder

Dockerfile in Heroku PR

app.json for Heroku in Heroku PR

Makefile in Heroku PR

最佳答案

可能的问题是您在heroku堆栈中使用构建包而不是docker“堆栈”。这意味着 Heroku 将尝试根据其规则检测和构建您的应用程序,而忽略您的 dockerfile。

首先更新堆栈:

heroku stack set docker -a <your app>

然后你应该能够在本地构建你的 docker 容器并将它们推送到 heroku registry .

使用 Heroku 时,与许多部署目标一样,您需要在本地(或者更好的是在 CI 中)构建镜像,并将其推送到注册表以进行部署/发布。

关于python - 使用 Makefile、Docker 和 Python 部署到 heroku,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60152496/

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