Skip to content

Commit 1e4e32d

Browse files
author
Antoine Rouyer
committed
Use machine_image resource to build docker images
instead of using machine resource. Pinned chef-provisioning & chef-provisioning-docker versions. Changes on php images: - Installs versions 5.5.34 & 7.0.5 - Removed pear/pyrus extensions installations (no longer supported by php-build) - Set phpenv_build timeout to 7200 - Set docker connection timeout to 10000 Changes on ruby images: - Removed versions 2.0.0 & 2.1.5 (keep 1.9.3-p547 & 2.1.5) - Set 2.1.5 as global version
1 parent b015cf8 commit 1e4e32d

File tree

13 files changed

+38
-77
lines changed

13 files changed

+38
-77
lines changed

.chef/knife.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
# See http://docs.opscode.com/config_rb_knife.html
22
# for more information on knife configuration options
33

4+
require 'chef/provisioning/docker_driver'
5+
driver 'docker'
6+
47
current_dir = File.dirname(__FILE__)
58

69
log_level :info
710
log_location STDOUT
811
cache_type 'BasicFile'
912
cache_options(path: "#{ENV['HOME']}/.chef/checksums")
1013
cookbook_path ["#{current_dir}/../cookbooks"]
11-
driver 'docker'
14+
role_path "#{current_dir}/../roles"

Berksfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ metadata
66
cookbook 'docker'
77
cookbook 'pyenv', git: 'https://github.com/sds/chef-pyenv.git'
88
cookbook 'rbenv', git: 'https://github.com/RiotGames/rbenv-cookbook.git'
9+
cookbook 'phpenv', git: 'https://github.com/Numergy/phpenv-cookbook.git'

Gemfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
source 'https://rubygems.org'
33

44
gem 'chef', '~> 12'
5-
gem 'chef-provisioning'
6-
gem 'chef-provisioning-docker'
5+
gem 'chef-provisioning', '= 1.0.1'
6+
gem 'chef-provisioning-docker', '0.9.0'
77
gem 'berkshelf'
88

99
group :integration do

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,13 @@ root@vagrant:~# bundle exec rake container:create
5151
```
5252
$ docker images
5353
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
54-
chef ruby f8290ef73660 7 minutes ago 722.4 MB
55-
...
54+
ci_ruby latest f8290ef73660 7 minutes ago 722.4 MB
5655
```
5756

5857
###### Running our container:
5958

6059
```
61-
$ docker run -t -i --entrypoint "/bin/bash" chef:ruby --login -c "rbenv versions"
60+
$ docker run -t -i --entrypoint "/bin/bash" ci_ruby --login -c "rbenv versions"
6261
* 1.9.3-p547 (set by /opt/rbenv/version)
6362
2.0.0-p598
6463
2.1.0

Rakefile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,24 +52,24 @@ end
5252

5353
namespace :container do
5454
current_dir = File.dirname(__FILE__)
55-
containers = %w(java node_js php python ruby)
55+
containers = %w(java nodejs php python ruby)
5656
containers.each do |name|
5757
task "create_#{name}".to_sym do
5858
run_command("chef-client -c #{current_dir}/.chef/knife.rb -z #{current_dir}/containers/#{name}.rb")
5959
end
6060

6161
task "deploy_#{name}".to_sym, [:repository] do |_t, args|
62-
repository = "#{args[:repository]}/" unless args[:repository].nil?
63-
sh "docker tag -f $(docker images chef | grep #{name} | " \
64-
"awk '{ print $3 }') #{repository}#{name}-builder"
65-
sh "docker push #{repository}#{name}-builder"
62+
repository = args[:repository] unless args[:repository].nil?
63+
sh "docker tag $(docker images | grep ci_#{name} | " \
64+
"awk '{ print $3 }') #{repository}/#{name}-builder"
65+
sh "docker push #{repository}/#{name}-builder"
6666
end
6767
end
6868

6969
multitask create: containers.map { |name, _recipe| "create_#{name}".to_sym }
7070

7171
task :deploy, [:repository] do |_t, args|
72-
repository = "#{args[:repository]}" unless args[:repository].nil?
72+
repository = args[:repository] unless args[:repository].nil?
7373
containers.each do |name, _recipe|
7474
task "deploy_#{name}_m".to_sym do
7575
Rake::Task["container:deploy_#{name}".to_sym].invoke(repository)

attributes/phpenv.rb

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616
# limitations under the License.
1717
#
1818

19-
default['container']['phpenv']['versions'] = ['5.3.29', '5.4.35', '5.5.19']
20-
default['container']['phpenv']['global'] = '5.3.29'
21-
default['container']['phpenv']['pear_extensions'] = ['pecl/mongo']
22-
default['container']['phpenv']['pyrus_extensions'] = ['pear/Archive_Tar-1.3.14',
23-
'pear/PEAR']
19+
default['container']['phpenv']['versions'] = ['5.5.34', '7.0.5']
20+
default['container']['phpenv']['global'] = '5.5.34'
2421
default['container']['phpenv']['ini_config'] =
2522
["date.timezone = 'Europe/Paris'"]

attributes/rbenv.rb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,9 @@
1717
#
1818

1919
node.default['container']['rbenv']['versions'] = ['1.9.3-p547',
20-
'2.0.0-p598',
21-
'2.1.0',
2220
'2.1.5']
23-
node.default['container']['rbenv']['global'] = '1.9.3-p547'
21+
node.default['container']['rbenv']['global'] = '2.1.5'
2422
node.default['container']['rbenv']['packages'] = %w(bundler)
2523

2624
default['container']['rbenv']['binaries_url'] = 'http://binaries.intercityup.com/ruby/ubuntu'
27-
default['container']['rbenv']['available_binaries'] = %w(2.1.0)
25+
default['container']['rbenv']['available_binaries'] = %w(2.1.5)

containers/java.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
# -*- coding: utf-8 -*-
2-
machine 'java' do
2+
3+
machine_image 'ci_java' do
4+
role 'java'
35
machine_options docker_options: {
46
base_image: {
57
name: 'ubuntu',
68
repository: 'ubuntu',
79
tag: '14.04'
810
}
911
}
10-
role 'java'
1112
end

containers/php.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
# -*- coding: utf-8 -*-
2-
machine 'php' do
2+
3+
machine_image 'ci_php' do
4+
role 'php'
35
machine_options docker_options: {
46
base_image: {
57
name: 'ubuntu',
68
repository: 'ubuntu',
79
tag: '14.04'
810
}
11+
},
12+
docker_connection: {
13+
read_timeout: 10000
914
}
10-
role 'php'
1115
end

containers/python.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
# -*- coding: utf-8 -*-
2-
machine 'python' do
2+
3+
machine_image 'ci_python' do
4+
role 'python'
35
machine_options docker_options: {
46
base_image: {
57
name: 'ubuntu',
68
repository: 'ubuntu',
79
tag: '14.04'
810
}
911
}
10-
role 'python'
1112
end

0 commit comments

Comments
 (0)