Can';t在heroku中发布推送的docker图像

Can';t在heroku中发布推送的docker图像,docker,heroku,heroku-cli,Docker,Heroku,Heroku Cli,我对Heroku很陌生 问题说明 在使用JIB成功地将docker映像推送到Heroku容器注册表之后,我正在努力释放它 我所做的: 使用JIB推送docker图像: [INFO] Built and pushed image as hamzablm/timesheet [INFO] Executing tasks: [INFO] [=========================== ] 88.9% complete [INFO] > launching layer pushers

我对Heroku很陌生

问题说明 在使用JIB成功地将docker映像推送到Heroku容器注册表之后,我正在努力释放它

我所做的: 使用JIB推送docker图像:

[INFO] Built and pushed image as hamzablm/timesheet
[INFO] Executing tasks:
[INFO] [===========================   ] 88.9% complete
[INFO] > launching layer pushers
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  51.106 s
[INFO] Finished at: 2020-04-20T11:16:20Z
[INFO] ------------------------------------------------------------------------
现在图像应该在注册表中了。 但当我想发布它时:
heroku容器:释放hamzablm/timesheet
失败:

 ›   Error: Missing required flag:
 ›     -a, --app APP  app to run command against
 ›   See more help with --help

我可能在这里遗漏了一些简单的东西,但是如果有任何帮助,我将不胜感激。

您将图像名称与
heroku容器:release
命令一起使用,但是您应该使用heroku应用程序的名称。
这通常是你需要的

docker push registry.heroku.com/appname/web
heroku container:release web -a appname

可以通过仪表板或CLI创建应用程序

您将图像名称与
heroku container:release
命令一起使用,但您应该使用heroku应用程序的名称。
这通常是你需要的

docker push registry.heroku.com/appname/web
heroku container:release web -a appname

应用程序可以通过仪表板或CLI创建,因此我遇到了相同的问题。然而,我正在处理一个需要 通过Travis CI中的管道标记并推送到heroku注册表。在这之后,我看到它还没有发布。当尝试释放容器时,它将失败,并给出与您遇到的相同错误。在下面的步骤中,我将解释我的修复方法。请注意,$变量包含在Travis CI中传递的变量

第一步 我使用Heroku API密钥与我的Docker一起登录到Heroku

docker login --username _ --password=$HEROKU_API_KEY registry.heroku.com
步骤2 我将我的Docker图像标记到Heroku的注册表中。 请注意以下内容,我使用$TRAVIS_BUILD_编号作为我的流程类型。 这是Travis CI本身实例化的变量,不必声明。 在Heroku展示的示例中,他们使用“web”一词作为示例,但您可以随意指定

docker tag $DOCKER_USER/$DOCKER_IMAGE:latest registry.heroku.com/$HEROKU_APP_NAME/$TRAVIS_BUILD_NUMBER
步骤3 我将图像推送到Heroku注册表

docker push registry.heroku.com/$HEROKU_APP_NAME/$TRAVIS_BUILD_NUMBER
步骤4 我通过指定进程类型($TRAVIS_BUILD_NUMBER)和Heroku应用程序名($Heroku_app_name),将容器释放给Heroku

我希望您已经修复了它,但这可能会让您更好地了解命令失败的原因。它缺少进程类型和--app标志。在下面的示例中,我假设hamzablm/timesheet是$HEROKU_APP_NAME变量:

 heroku container:release $MISSING_PROCESS_TYPE --app hamzablm/timesheet

我希望这能更好地理解。

因此我遇到了同样的问题。然而,我正在处理一个需要 通过Travis CI中的管道标记并推送到heroku注册表。在这之后,我看到它还没有发布。当尝试释放容器时,它将失败,并给出与您遇到的相同错误。在下面的步骤中,我将解释我的修复方法。请注意,$变量包含在Travis CI中传递的变量

第一步 我使用Heroku API密钥与我的Docker一起登录到Heroku

docker login --username _ --password=$HEROKU_API_KEY registry.heroku.com
步骤2 我将我的Docker图像标记到Heroku的注册表中。 请注意以下内容,我使用$TRAVIS_BUILD_编号作为我的流程类型。 这是Travis CI本身实例化的变量,不必声明。 在Heroku展示的示例中,他们使用“web”一词作为示例,但您可以随意指定

docker tag $DOCKER_USER/$DOCKER_IMAGE:latest registry.heroku.com/$HEROKU_APP_NAME/$TRAVIS_BUILD_NUMBER
步骤3 我将图像推送到Heroku注册表

docker push registry.heroku.com/$HEROKU_APP_NAME/$TRAVIS_BUILD_NUMBER
步骤4 我通过指定进程类型($TRAVIS_BUILD_NUMBER)和Heroku应用程序名($Heroku_app_name),将容器释放给Heroku

我希望您已经修复了它,但这可能会让您更好地了解命令失败的原因。它缺少进程类型和--app标志。在下面的示例中,我假设hamzablm/timesheet是$HEROKU_APP_NAME变量:

 heroku container:release $MISSING_PROCESS_TYPE --app hamzablm/timesheet


我希望这有助于更好地理解。

请看,这不是我的情况,因为映像已在注册表中。这与您需要指定应用程序名称的错误相同。这很奇怪,因为从Heroku CLI命令中,如果您检查您的部分(),它会说-a是必需的选项。。然后,在示例中,未指定。如果您尝试手动指定标志,该怎么办?指定-a选项也不起作用:
▸    找不到该应用程序。
请看,这不是我的情况,因为映像已在注册表中。这与您需要指定应用程序名称的错误相同。这很奇怪,因为从Heroku CLI命令中,如果您检查您的节(),它会说-a是必需的选项。。然后,在示例中,未指定。如果您尝试手动指定标志,该怎么办?指定-a选项也不起作用:
▸    找不到该应用程序。
+1这实际上似乎有效,但没有给我通常的错误。但是当我运行heroku container:release web-时间表时,它会显示:
您没有访问应用程序时间表的权限。
即使在使用
heroku登录登录heroku后,它也不工作
我是否遗漏了什么?非常感谢您的帮助。您是否也
heroku容器:登录
?并检查应用程序名称是否正确,以及是否与在heroku上创建的应用程序名称相匹配。是否标记图像?如果运行
heroku容器:登录
,则连接成功,但
您无权访问应用程序时间表。
如果运行
heroku容器:发布web-时间表
确定,工作流如下:-docker build-t myImage。-docker标记myImage registry.heroku.com/myApp/web-docker push registry.heroku.com/myApp/web-heroku container:release web-a myApp该标记指定了发布cmd+1所需的进程类型(web)。这实际上似乎是可行的,但并没有给出通常的错误。但是当我运行heroku container:release web-时间表时,它会显示:
您没有访问应用程序时间表的权限。
即使在使用
heroku登录登录heroku后,它也不工作
我是否遗漏了什么?非常感谢您的帮助。您是否也
heroku容器:登录
?并检查应用程序名称是否正确,是否与在heroku上创建的应用程序名称相匹配。是否标记图像?不,运行
heroku cont时连接成功