2016-11-25 130 views
4

我正在關注這篇文章https://devcenter.heroku.com/articles/container-registry-and-runtime,我被卡在「heroku容器:推」。我跑「的Heroku容器:推--app媒體框」和泊塢窗圖像被正確地構建,然後開始將其推到註冊表,這就是我得到:Heroku碼頭部署

Successfully built 7926b98d51b5 
The push refers to a repository [registry.heroku.com/mediabox/web] 
38d48dd6de30: Preparing 
969058e6ddc9: Preparing 
2f454953e0e7: Preparing 
f67c1ecd32a1: Preparing 
44fade3982ca: Preparing 
0accb1c81980: Waiting 
e79bbdfaa0d3: Waiting 
1be5d1797b73: Waiting 
5c0a4f4b3a35: Waiting 
011b303988d2: Waiting 
error parsing HTTP 400 response body: unexpected end of JSON input: "" 
! Error: docker push exited with 1 

這是我Dockerfile:

FROM ruby:2.3.1-alpine 

RUN apk --update --no-cache add build-base less libxml2-dev libxslt-dev nodejs postgresql-dev && mkdir -p /app 

WORKDIR /app 

COPY Gemfile Gemfile.lock ./ 

RUN gem install bundler 

RUN bundle 

COPY . ./ 

CMD ["script/docker-entrypoint.sh"] 

我在這裏找不到解決方案。謝謝你的幫助。

+0

你解決了嗎?我也看到相同的問題 –

回答

0

首先,在Heroku的碼頭工人一體化是BETA,當你鏈接的文章說。它可能仍然有一些錯誤。因此,直接聯繫Heroku支持可能是一個好主意。

假設Heroku的集成和代碼都OK,我只能建議你停止使用heroku container:push,只使用官方泊塢窗命令。這可能會避免一些推動問題。

您可以在本地構建映像使用:

docker build . 

然後用它推到Heroku的:

docker tag <image> registry.heroku.com/<app>/<process-type> 
docker push registry.heroku.com/<app>/<process-type> 

我有一個基於Gitlab CI和Heroku的使用碼頭工人的生產環境。我們所有的整合僅取決於docker命令,而我們從未遇到任何推送本地構建的圖像的問題。

+0

Thx的答覆。我也在heroku上發佈了這個問題。我做手工的東西像你的建議,但仍然得到了同樣的問題: 錯誤解析HTTP 400響應體:JSON輸入意外結束:「」 –

+0

很奇怪,HTTP 400個sugggests你沒有傳遞正確的PARAMS(壞PARAMS ),但它並沒有明確說明發生了什麼。你能發佈你正在使用的完整的docker push命令嗎? –

0

我需要明確地傳遞應用程序名稱,而不是內部的一個這樣做heroku container:push --app rocky-wildwood-86034順利。

我所做的: Heroku的容器:推--app媒體框

正確的一個是: Heroku的容器:推--app ROCKY-懷爾德伍德-86034

簡單的應用程序名稱應該是全球heroku應用程序名稱,而不是在docker-compose.yml中定義的名稱。

+0

你能詳細解答你的答案嗎?發送發送錯誤的呼叫和正確的命令之間的區別。 –

+0

你不明白嗎?我寫道,我通過我的內部應用程序名稱是錯誤的,我應該通過實際的heroku應用程序名稱: 之前:「heroku容器:推--app mediabox」 現在:「heroku容器:推--app的rocky- wildwood-86034「 我在自己的答案中寫了這個。 –

+0

您在撰寫我的評論後已更新答案。 –

2

我有這個問題時,我忘了運行heroku container:login。即使您登錄到heroku,heroku容器服務也需要單獨登錄。這就是爲什麼你在上傳開始時就會遇到錯誤 - 你沒有被授權。

+0

值得注意的是,如果您在CLI上使用多個Heroku帳戶,則可能需要運行'heroku auth:whoami'以確保您在登入容器時想要使用的帳戶。今晚對我來說這是一個懸念。 – Brendan

0

我有同樣的錯誤,當我忘了heroku container:login第一。不確定您的問題是否由相同的用戶錯誤引起。

1

registry.heroku.com/mediabox/web

只需使用Heroku的儀表板,以創建名爲「媒體框」的應用程序,並再次嘗試推的形象,它爲我工作。