2017-12-05 1 views
0

실제로 도커를 사용하여 도커를 배우고 있습니다.# <Chef :: Cookbook :: Metadata : 0x000000006f1378>에 대한 정의되지 않은 메소드`source_url '

나는 5 장

이 조리법은 고정 표시기 구성을 관리하기위한 요리사를 사용하는 방법에 대한 것입니다에 기술 47에서 일하고 있습니다. github 링크는 here입니다.

컨테이너에서 도커 이미지를 만들 때 아래 오류가 발생합니다.

$ docker build -t chef-example . 
Sending build context to Docker daemon 9.728kB 
Step 1/12 : FROM ubuntu:latest 
---> ccc7a11d65b1 
Step 2/12 : RUN apt-get update && apt-get install -yy git curl 
---> Using cache 
---> ef956c61c59f 
Step 3/12 : RUN curl -L https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chefdk_0.3.5-1_amd64.deb -o chef.deb 
---> Using cache 
---> 1260301dbe67 
Step 4/12 : RUN dpkg -i chef.deb && rm chef.deb 
---> Using cache 
---> 8c1aeaf84423 
Step 5/12 : COPY . /chef 
---> 18986195e732 
Removing intermediate container 758dfce43670 
Step 6/12 : WORKDIR /chef/cookbooks 
---> fbdd9c386801 
Removing intermediate container 936393187cb4 
Step 7/12 : RUN knife cookbook site download apache2 
---> Running in 2ba7d0765ae2 
WARNING: No knife configuration file found 
Downloading apache2 from the cookbooks site at version 5.0.1 to /chef/cookbooks/apache2-5.0.1.tar.gz 
Cookbook saved: /chef/cookbooks/apache2-5.0.1.tar.gz 
---> 8b3fa14f4416 
Removing intermediate container 2ba7d0765ae2 
Step 8/12 : RUN knife cookbook site download iptables 
---> Running in 94275acfdb44 
WARNING: No knife configuration file found 
Downloading iptables from the cookbooks site at version 4.3.1 to /chef/cookbooks/iptables-4.3.1.tar.gz 
Cookbook saved: /chef/cookbooks/iptables-4.3.1.tar.gz 
---> c8a4c6d17253 
Removing intermediate container 94275acfdb44 
Step 9/12 : RUN knife cookbook site download logrotate 
---> Running in 27b5f736d6cf 
WARNING: No knife configuration file found 
Downloading logrotate from the cookbooks site at version 2.2.0 to /chef/cookbooks/logrotate-2.2.0.tar.gz 
Cookbook saved: /chef/cookbooks/logrotate-2.2.0.tar.gz 
---> 1b4b4460bdc9 
Removing intermediate container 27b5f736d6cf 
Step 10/12 : RUN /bin/bash -c 'for f in $(ls *gz); do tar -zxf $f; rm $f; done' 
---> Running in 7e6b912d910e 
---> d5e77acc14f1 
Removing intermediate container 7e6b912d910e 
Step 11/12 : RUN chef-solo -c /chef/config.rb -j /chef/attributes.json 
---> Running in a0c7f7f7a00a 
[2017-12-05T08:01:08+00:00] INFO: Forking chef instance to converge... 
[2017-12-05T08:01:08+00:00] INFO: *** Chef 11.18.0.rc.1 *** 
[2017-12-05T08:01:08+00:00] INFO: Chef-client pid: 9 
[2017-12-05T08:01:09+00:00] INFO: Setting the run_list to 
["recipe[apache2::default]", "recipe[mysite::default]"] from CLI options 
[2017-12-05T08:01:09+00:00] INFO: Run List is 
[recipe[apache2::default], recipe[mysite::default]] 
[2017-12-05T08:01:09+00:00] INFO: Run List expands to [apache2::default, mysite::default] 
[2017-12-05T08:01:09+00:00] INFO: Starting Chef Run for 8089fe031125 
[2017-12-05T08:01:09+00:00] INFO: Running start handlers 
[2017-12-05T08:01:09+00:00] INFO: Start handlers complete. 
[2017-12-05T08:01:09+00:00] ERROR: Running exception handlers 
[2017-12-05T08:01:09+00:00] ERROR: Exception handlers complete 
[2017-12-05T08:01:09+00:00] FATAL: Stacktrace dumped to /chef/cache/chef-stacktrace.out 
[2017-12-05T08:01:09+00:00] ERROR: undefined method `source_url' for #<Chef::Cookbook::Metadata:0x000000006f1378> 
[2017-12-05T08:01:09+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1) 
The command '/bin/sh -c chef-solo -c /chef/config.rb -j /chef/attributes.json' returned a non-zero code: 1 

저는 요리사가 처음이에요. 왜이 오류가 발생하는지 확신 할 수 없습니다.

답변

1

요리 책에는 metadata.rb이 없기 때문에 문제가있을 수 있지만 현재 Chef 11.18을 사용하고 있습니다.이 시점에서는 완전히 지원이 중단되었습니다. 현재 요리사는 13.6.4입니다.

또한 Chef를 사용하여 대부분의 경우 컨테이너 이미지를 작성하는 것은 권장하지 않습니다. 확실히 작동 할 수 있지만 전반적인 Chef는 서버를 관리하기 위해 제작 되었기 때문에 대부분의 경우 서버와 같은 뚱뚱한 이미지가 생성됩니다.

관련 문제