2017-06-20 90 views
1

我試圖用Huber連接Hubot和使用Docker的Rocketchat。 我的命令有:Docker:不是有效的存儲庫:

docker run -it -e ROCKETCHAT_URL=<your rocketchat instance>:<port> \ 
       -e ROCKETCHAT_ROOM='' \ 
       -e LISTEN_ON_ALL_PUBLIC=true \ 
       -e ROCKETCHAT_USER=bot \ 
       -e ROCKETCHAT_PASSWORD=bot \ 
       -e ROCKETCHAT_AUTH=password \ 
       -e BOT_NAME=bot \ 
       -e EXTERNAL_SCRIPTS=hubot-pugme,hubot-help \ 
       rocketchat/hubot-rocketchat 

我的輸入是:U:\ myhubot>搬運工運行 - 它-e ROCKETCHAT_URL = https://spree.chat/channel/:3000

但是多克爾是說: 搬運工:錯誤解析參考: 「\」 是不是有效的存儲庫/標籤:無效的參考格式。

我檢查了Docker的版本,它是正確的。這是網絡瀏覽器上唯一的解決方案。 這是什麼解決方案?

截圖:

Docker Error

+0

你引述的 「https://spree.chat/channel/:3000」? –

+0

我剛試過用引號。錯誤仍然保持不變。 –

回答

1

的URL的正確格式爲protocol://domain:port/path/filename,所以URL應該是https://spree.chat:3000/channel/。 Docker並不期望:3000,因此解析命令失敗。

查看Rocket.Chat Hubot Adapter的文檔,在我看來,您只需指定host:porthttps://spree.chat:3000。但這只是一個猜測......

+0

我不認爲這實際上是造成引用的錯誤,這是在抱怨「具體」。然而,看着rocketchat文檔,我認爲你的觀察是正確的,並且OP可能會在稍後出現這個錯誤。 –

+0

是的,我同意你的意見。我沒有仔細注意屏幕截圖,注意到OP正在使用Windows並在一行中執行該命令。抓住這個好工作。 – jdno

2

您的問題中的命令文本是跨越多行,使用\字符繼續到下一行並添加更多的命令。

首先,這是一個Unix約定,但您使用的是Windows。在Windows上,\是一個目錄分隔符,而不是一個續行字符。在Windows上,爲了繼續下一行,我相信你用^來代替。

其次,在你的截圖中,你似乎在命令中使用了\,但它都是一行。該命令在它後面的同一行繼續。因此,Docker預計會在\之間找到映像名稱,並嘗試將其用作該映像名稱。但那不是有效的,所以它會抱怨並告訴你。

如果您將在一行上使用此命令,只需刪除\字符。

如果您將跨越多行使用此功能,我相信您應該使用^來代替,如this answer中所示。

另請參閱jdno's answer這是一個不同的問題,你可能會遇到這個問題後,你會遇到。

0

該命令爲unix風格,其中\表示命令在下一行上連續。

由於您使用的是Windows平臺,因此您可以在單行中使用整個命令,即刪除\並將所有行都放在單行中。

如下嘗試:

docker run -it -e ROCKETCHAT_URL="<your rocketchat instance>:<port>" -e ROCKETCHAT_ROOM="" -e LISTEN_ON_ALL_PUBLIC=true -e ROCKETCHAT_USER=bot -e ROCKETCHAT_PASSWORD=bot -e ROCKETCHAT_AUTH=password -e BOT_NAME=bot -e EXTERNAL_SCRIPTS="hubot-pugme,hubot-help" rocketchat/hubot-rocketchat