2017-08-06 39 views
0

主機與Ubuntu 16.04.2RUN echo -e「deb http ...」準備目標文件的錯誤內容

Docker 版本17.06.0-ce

Dockerfile

RUN echo -e "deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx\ndeb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx" | tee /etc/apt/sources.list.d/nginx.list 

這導致/etc/apt/sources.list.d/nginx.list

-e deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx 
deb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx 

嘛,彷彿反斜槓解釋作品。但是這個「-e」發生在文件中。

然後這樣的圖像不能建立。

你能在這裏給我一個踢嗎?

回答

0

嘗試使用bash shell代替echo命令。默認情況下,Docker使用sh外殼,由於某種原因它不喜歡-e字符,並將其作爲其輸入的一部分進行回顯。

爲了解決這個問題;

更新到:

RUN bash -c 'echo -e "deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx\ndeb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx" | tee /etc/apt/sources.list.d/nginx.list' 

輸出:

根@ 87944d07f493:/etc/apt/sources.list.d#貓nginx.list DEB http://nginx.org/packages/mainline/ubuntu/ xenial nginx的DEB -src http://nginx.org/packages/mainline/ubuntu/ xenial nginx

您可以通過在當前終端會話中切換到sh來複制此「泊塢窗問題」,然後再次執行相同的echo命令。