配备厨师的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没有影响。