2016-11-01 128 views
2

我想推出這個無業遊民命令cat(完美運行!)到provisionning我的容器用Dockerfile:推出了CAT命令UNIX到Dockerfile

# Configure Virtualenvwrapper. 
RUN cat <<EOF >> /home/docker/.bashrc 
# Virtualenvwrapper configuration. 
export WORKON_HOME=\$HOME/.virtualenvs 
export PROJECT_HOME=\$HOME/Devel 
source /usr/local/bin/virtualenvwrapper.sh 
EOF 

但我有這個錯誤的回報,當我啓動我的建築像搬運工:

---> 40f9ed8e187d 
Removing intermediate container 85f6c8536520 
Step 69 : RUN cat <<EOF >> /home/docker/.bashrc 
---> Running in dcbb3d441f79 
---> 78acd9c2e5d5 
Removing intermediate container dcbb3d441f79 
Step 70 : EXPORT 
Unknown instruction: EXPORT 

什麼把戲運行cat命令UNIX與Dockerfile形象?

回答

2

Dockerfiles不是批處理文件。每條線路/命令都是孤立的和承諾的。

只需將內容放入文件並添加/複製它。如果你需要定製它,SED它。或者如果你確實真的想將CAT放入一個文件中 - 將其放入一個真正的批處理文件中,然後添加/複製它,然後運行它。

此外,較少的線=較少的層。 70步驟? Yowzers。

+0

此外,您必須運行交互式標誌以獲取.bashrc。製作一些正確的執行腳本,以確保ENV變量在容器中設置正確--vs- .bashrc「magic」。 – user2105103