2016-11-01 72 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