对于一个学校项目,我想在Heroku上部署我们的应用程序。该应用程序由一个前端组成,由reactjs制作,并编译成静态html,然后由后端提供服务,后端还处理API和其他所有内容
dockerfile工作正常,当在repo中启动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。为了解决这个问题,我尝试使用aptfilebuildpack添加一个Aptfile,但没有成功。也可以移动Python构建包
有谁知道一个更好的解决方案可以轻松部署到我的项目中吗?要么在heroku的构建过程中使用我们的makefile,要么在travis中将docker图像推送到heroku
有关我的问题的有用链接: Repository
可能的问题是,您正在heroku堆栈中使用构建包,而不是docker“堆栈”。这意味着heroku将尝试根据其规则检测并构建您的应用程序,而忽略您的dockerfile
首先更新堆栈:
然后,您应该能够在本地构建docker容器,并将它们推送到herokuregistry
与许多部署目标一样,使用heroku时,您需要在CI中本地构建映像,或者更好地构建映像,并将其推送到注册表进行部署/发布
相关问题 更多 >
编程相关推荐