使用平台API发布Heroku容器



我正试图通过仅使用API而不使用Heroku CLI将web进程释放到容器中。

我知道我可以做一些类似heroku container:release web -a <<myApp>>的事情,但使用Heroku CLI不是一个选项,因为我正试图创建一个GH操作来完成它。

在heroku注册表中正确地推送图像后,我尝试以以下方式从heroku文档中释放容器:

curl -X PATCH https://api.heroku.com/apps/$APP/formation 
-d '{
"updates": [
{
"type": "web",
"docker_image": "$(docker inspect $IMAGE --format={{.Id}})"
}
]
}' 
-H "Content-Type: application/json" 
-H "Accept: application/vnd.heroku+json; version=3.docker-releases" 
-H "Authorization: Bearer $HEROKU_API_KEY"

然而,它一直给我同样的信息:

{
"resource": "docker_image",
"id": "not_found",
"message": "Couldn't find that docker image."
}

我做错了什么?

注意

在我的GH操作中,我已经尝试过执行heroku login -i并传递用户名和访问令牌,但它一直给我Password: invalid option -s

即使我复制HEROKU_API_KEY环境变量,执行docker push ...也会失败。

复制有效的.netrc文件也失败,错误与使用HEROKU_API_KEY相同。

如果有人像我一样陷入困境,我会在这里发布另一个解决方案。

在存储库中创建最简单的heroku.yml

将以下内容放入其中:

build:
docker:
web: Dockerfile

对我来说,不需要run部分,因为Dockerfile中的CMD已经是我需要执行的了。

通过这种方式,heroku平台理解必须在构建过程完成后构建映像并运行容器

相关内容

  • 没有找到相关文章

最新更新