为厨师提供 docker 图像
Provisioning a docker image with chef
我正在尝试构建一个由 Chef 提供的 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 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
在那里无效。
我正在尝试构建一个由 Chef 提供的 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 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
在那里无效。