如何将docker compose应用程序部署到heroku?
我想将python django dockerapp部署到heroku。但是我得到了psycopg2。操作错误:无法将主机名“db”转换为地址:名称或服务未知错误发生在如何将docker compose应用程序部署到heroku?,docker,heroku,Docker,Heroku,我想将python django dockerapp部署到heroku。但是我得到了psycopg2。操作错误:无法将主机名“db”转换为地址:名称或服务未知错误发生在git-push-heroku-master之后 文件如下 我如何解决这个问题?谢谢 docker-compose.yml 版本:“3” 服务: db: 图片:博士后 环境: POSTGRES_DB:testdb POSTGRES_用户:testuser POSTGRES_密码:testpw 网状物: 生成:。 命令:pyth
git-push-heroku-master
之后
文件如下
我如何解决这个问题?谢谢
- docker-compose.yml
版本:“3”
服务:
db:
图片:博士后
环境:
POSTGRES_DB:testdb
POSTGRES_用户:testuser
POSTGRES_密码:testpw
网状物:
生成:。
命令:python manage.py runserver 0.0.0.0:8000
卷数:
-.:/code
端口:
- "8000:8000"
取决于:
-分贝
- 赫罗库
设置:
插件:
-计划:heroku postgresql
as:db
配置:
S3_桶:db
建造:
码头工人:
网页:Dockerfile
运行:
web:python manage.py运行服务器0.0.0.0:8000
工人:
图片:网络
- 我运行的命令:
gitinit;git-add-A;git-commit-m。
heroku create#//无名-安克雷奇-47384
heroku git:remote-a无名安克雷奇-47384
heroku堆栈:设置容器
git推动heroku大师;heroku原木——尾巴
- 我得到的日志:
我想你做不到。我必须做一个免费的“Postgres插件”,然后使用他们公开的
数据库URL
环境变量连接到数据库。在我看来,你可能需要将db
主机名替换为os.environ.get('database\u URL')
,这是使用heroku数据库插件默认设置的
因此,无论您在哪里传递数据库连接uri,只要将其更新为指向heroku数据库的URL()
见:
docker compose.yml
文件来部署,而是编写一个定制的heroku.yml
文件
heroku.yml概述
heroku.yml清单有4个顶级部分:
setup - Specifies the add-ons and config vars to create during app provisioning
build - Specifies the Dockerfile to build
release - Specifies the release phase tasks to execute
run - Specifies process types and the commands to run for each
他们以此为例,与compose.yml文件不同:
示例heroku.yml
文件:
setup:
addons:
- plan: heroku-postgresql
as: DATABASE
config:
S3_BUCKET: my-example-bucket
build:
docker:
web: Dockerfile
worker: worker/Dockerfile
config:
RAILS_ENV: development
FOO: bar
release:
command:
- ./deployment-tasks.sh
image: worker
run:
web: bundle exec puma -C config/puma.rb
worker: python myworker.py
asset-syncer:
command:
- python asset-syncer.py
image: worker
不要在Heroku上运行自己的数据库基础设施(或者任何其他生产环境,除非您真的知道自己在做什么)。使用一个数据库插件。另外,我不确定你是否可以像运行web进程那样使用硬编码端口(8000)。可能使用
$PORT
Heroku环境变量?
setup:
addons:
- plan: heroku-postgresql
as: DATABASE
config:
S3_BUCKET: my-example-bucket
build:
docker:
web: Dockerfile
worker: worker/Dockerfile
config:
RAILS_ENV: development
FOO: bar
release:
command:
- ./deployment-tasks.sh
image: worker
run:
web: bundle exec puma -C config/puma.rb
worker: python myworker.py
asset-syncer:
command:
- python asset-syncer.py
image: worker