配备厨师的docker形象
我正在尝试构build一个配有厨师的docker图像。 它适用于我以下的Dockerfile和厨师食谱。
#Dockerfile FROM centos:7 RUN yum install -y wget RUN wget https://packages.chef.io/stable/el/7/chefdk-0.13.21-1.el7.x86_64.rpm RUN yum install -y chefdk-0.13.21-1.el7.x86_64.rpm COPY cookbooks cookbooks RUN cd cookbooks/hs_price_verification && berks install && berks vendor cookbooks && chef-client -z --override-runlist hs_price_verification #default.rb include_recipe 'git' package 'yum-utils' execute 'yum --enablerepo=base clean metadata' execute 'yum update -y || true' execute 'yum-config-manager --enable cr' domain=node['domainsname']
但是,如果我将chef-client命令移到Dockerfile中它自己的RUN行
... RUN cd cookbooks/hs_price_verification && berks install && berks vendor cookbooks RUN chef-client -z --override-runlist hs_price_verification
我得到一个错误
================================================================================ Error Resolving Cookbooks for Run List: ================================================================================ Missing Cookbooks: ------------------ No such cookbook: git
就像'berks install && berks vendor cookbooks'的结果一样,在Dockerfile的同一行上,当我移动这个命令时,'cache'丢失了。
谁能解释一下?
Docker在自己的命令中运行每个RUN
行,这意味着从前面的行的cd
没有影响。