docker_brick 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/.project +17 -0
  4. data/Gemfile +11 -0
  5. data/LICENSE.txt +24 -0
  6. data/README.md +29 -0
  7. data/Rakefile +2 -0
  8. data/bin/brick +11 -0
  9. data/docker_brick.gemspec +29 -0
  10. data/lib/brick/application.rb +35 -0
  11. data/lib/brick/cli/build.rb +28 -0
  12. data/lib/brick/cli/core/subcommand_loader.rb +39 -0
  13. data/lib/brick/cli/help.rb +16 -0
  14. data/lib/brick/cli/project_new.rb +29 -0
  15. data/lib/brick/cli/run.rb +113 -0
  16. data/lib/brick/cli/service_new.rb +44 -0
  17. data/lib/brick/cli/up.rb +46 -0
  18. data/lib/brick/cli.rb +230 -0
  19. data/lib/brick/cli__validator.rb +28 -0
  20. data/lib/brick/config.rb +9 -0
  21. data/lib/brick/docker/docker_client.rb +160 -0
  22. data/lib/brick/generators/new_project_generator/templates/fig.yml +0 -0
  23. data/lib/brick/generators/new_project_generator.rb +51 -0
  24. data/lib/brick/generators/new_service_generator.rb +24 -0
  25. data/lib/brick/generators.rb +10 -0
  26. data/lib/brick/mixin/aliasing.rb +24 -0
  27. data/lib/brick/mixin/colors.rb +24 -0
  28. data/lib/brick/mixin/convert_to_class_name.rb +52 -0
  29. data/lib/brick/mixin/docker_support.rb +253 -0
  30. data/lib/brick/mixin/yaml_helper.rb +18 -0
  31. data/lib/brick/mixin.rb +8 -0
  32. data/lib/brick/models/project.rb +139 -0
  33. data/lib/brick/models/service.rb +276 -0
  34. data/lib/brick/models.rb +13 -0
  35. data/lib/brick/monkey_patches/cli.rb +24 -0
  36. data/lib/brick/monkey_patches/connection.rb +15 -0
  37. data/lib/brick/monkey_patches/docker_container.rb +28 -0
  38. data/lib/brick/monkey_patches/hash.rb +16 -0
  39. data/lib/brick/monkey_patches.rb +5 -0
  40. data/lib/brick/version.rb +4 -0
  41. data/lib/brick.rb +34 -0
  42. data/spec/brick_update.sh +7 -0
  43. data/spec/integration/brick/models/project_spec.rb +70 -0
  44. data/spec/projects/nc_test/fig.yml +14 -0
  45. data/spec/projects/nc_test/ncserver/Dockerfile +7 -0
  46. data/spec/projects/rails/myapp/Dockerfile +7 -0
  47. data/spec/projects/rails/myapp/Gemfile +2 -0
  48. data/spec/projects/rails/myapp/fig.yml +13 -0
  49. data/spec/shell/brick_update.sh +7 -0
  50. data/spec/spec_helper.rb +19 -0
  51. data/spec/unit/brick/mixin/docker_support.yml +33 -0
  52. data/spec/unit/brick/mixin/docker_support_spec.rb +66 -0
  53. data/spec/unit/brick/models/dockerfile/Dockerfile +7 -0
  54. data/spec/unit/brick/models/fig_build.yml +3 -0
  55. data/spec/unit/brick/models/fig_completed.yml +41 -0
  56. data/spec/unit/brick/models/fig_dependency.yml +19 -0
  57. data/spec/unit/brick/models/fig_single.yml +6 -0
  58. data/spec/unit/brick/models/fig_volumes.yml +10 -0
  59. data/spec/unit/brick/models/fig_volumes_from.yml +19 -0
  60. data/spec/unit/brick/models/project_spec.rb +70 -0
  61. data/spec/unit/brick/models/service_spec.rb +80 -0
  62. metadata +231 -0
@@ -0,0 +1,24 @@
1
+ module Mixlib
2
+ module CLI
3
+ def parse_options(argv=ARGV)
4
+ argv = argv.dup
5
+
6
+ #redefine the method from parse! to order!
7
+ opt_parser.order!(argv)
8
+
9
+
10
+ # Deal with any required values
11
+ options.each do |opt_key, opt_value|
12
+ if opt_value[:required] && !config.has_key?(opt_key)
13
+ reqarg = opt_value[:short] || opt_value[:long]
14
+ puts "You must supply #{reqarg}!"
15
+ puts @opt_parser
16
+ exit 2
17
+ end
18
+ end
19
+
20
+ @cli_arguments = argv
21
+ argv
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,15 @@
1
+ module Excon
2
+ class Connection
3
+ def error_call(datum)
4
+ if datum[:error]
5
+ message = datum[:response][:body] rescue nil
6
+
7
+ if !message.nil? and message.length>0
8
+ raise(datum[:error],message)
9
+ else
10
+ raise(datum[:error])
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,28 @@
1
+ require 'date'
2
+
3
+ class Docker::Container
4
+
5
+ def self.search_by_name(name_filter, conn, query={"all"=>true})
6
+ result=[]
7
+ hashes = Docker::Util.parse_json(conn.get('/containers/json', query)) || []
8
+ list=hashes.map { |hash| Docker::Container.get(hash["Id"]) }
9
+
10
+ list = list.select{|e| e.info["Name"].include? name_filter}
11
+
12
+ result=list.sort_by{|e| -Date.parse(e.info["Created"]).to_time.to_i}
13
+
14
+ return result
15
+ end
16
+
17
+ def is_running?
18
+ running= Docker::Container.get(id).info["State"]["Running"]
19
+ end
20
+
21
+ # Check if an image exists.
22
+ def self.exist?(id, opts = {}, conn = Docker.connection)
23
+ get(id, opts, conn)
24
+ true
25
+ rescue Docker::Error::NotFoundError
26
+ false
27
+ end
28
+ end
@@ -0,0 +1,16 @@
1
+ require 'ostruct'
2
+
3
+ class Hash
4
+ def to_ostruct
5
+ ostruct = inject({}) {|result, (key, value)|
6
+ if value.is_a?(Array)
7
+ value = value.map {|v| v.respond_to?(:to_ostruct) ? v.to_ostruct : v }
8
+ end
9
+
10
+ result[key] = value.respond_to?(:to_ostruct) ? value.to_ostruct : value
11
+ result
12
+ }
13
+
14
+ OpenStruct.new(ostruct)
15
+ end
16
+ end
@@ -0,0 +1,5 @@
1
+ require 'brick/monkey_patches/connection'
2
+
3
+ require 'brick/monkey_patches/docker_container'
4
+
5
+ require 'brick/monkey_patches/hash'
@@ -0,0 +1,4 @@
1
+ module Brick
2
+ BRICK_ROOT = File.dirname(File.expand_path(File.dirname(__FILE__)))
3
+ VERSION = "0.0.1"
4
+ end
data/lib/brick.rb ADDED
@@ -0,0 +1,34 @@
1
+ require "brick/version"
2
+
3
+ require 'brick/mixin'
4
+
5
+ require "brick/cli"
6
+
7
+ require "brick/cli/core/subcommand_loader"
8
+
9
+
10
+ require 'brick/application'
11
+
12
+ require 'brick/config'
13
+
14
+ require 'excon'
15
+
16
+
17
+ require "brick/cli__validator"
18
+
19
+ require 'brick/models'
20
+
21
+ require "logger"
22
+
23
+ require 'brick/monkey_patches'
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
@@ -0,0 +1,7 @@
1
+ cd /docker_brick
2
+ git pull
3
+ gem build docker_brick.gemspec
4
+ gem install brick-0.0.1.gem
5
+ cd /
6
+ rm -rf /myapp
7
+ cp -r /docker_brick/spec/projects/rails/myapp/ /
@@ -0,0 +1,70 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe Brick::Models::Project do
5
+
6
+ before :all do
7
+ `docker stop $(docker ps -aq)`
8
+ `docker rm $(docker ps -aq)`
9
+ @config_file = File.join(File.dirname(__FILE__),'fig_single.yml' )
10
+ end
11
+
12
+ subject(:fig_single) { described_class.new("bdt",{:config_file=>@config_file}) }
13
+
14
+ describe '#initialize' do
15
+
16
+ context "when parsing fig_completed.yml" do
17
+ it "parse redis service" do
18
+ #service nginx
19
+ redis = OpenStruct.new
20
+
21
+ redis.images = "redis:latest"
22
+
23
+ #subject.services.each{|service|puts "links=#{service.service_config_hash["links"]}"; puts service.service_config_hash}
24
+
25
+ expect(fig_single.services["redis"].name).to eq 'bdt_redis_1'
26
+
27
+
28
+ end
29
+ end
30
+ end
31
+
32
+ describe "#create a single service from image" do
33
+ context "no link support" do
34
+
35
+ context "the redis container doesn't exist" do
36
+ it "create redis service" do
37
+ instance=fig_single.run_services 'redis'
38
+
39
+ puts instance
40
+ end
41
+ end
42
+
43
+ context "the redis container already exist" do
44
+ it "create web service" do
45
+ instance=fig_single.run_services 'redis'
46
+
47
+ puts instance
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ subject(:fig_dependency) { described_class.new("bdt",{:config_file=>File.join(File.dirname(__FILE__),'fig_dependency.yml' )}) }
54
+
55
+ describe "#create a service which has dependency" do
56
+ context "no link support" do
57
+
58
+ context "enable dependency" do
59
+ it "create web service" do
60
+ instance=fig_dependency.run_services 'web', true
61
+
62
+ fig_dependency.services.each_value{|service| expect(service.running?).to eq(true)}
63
+
64
+
65
+ end
66
+ end
67
+ end
68
+ end
69
+
70
+ end
@@ -0,0 +1,14 @@
1
+ ncserver:
2
+ build: ./ncserver
3
+ ports:
4
+ - "5432:8080"
5
+ tty: true
6
+ command: nc -l 8080
7
+ ncclient:
8
+ image: ubuntu:latest
9
+ ports:
10
+ - "3001:22"
11
+ tty: true
12
+ command: /bin/bash
13
+ links:
14
+ - ncserver
@@ -0,0 +1,7 @@
1
+ FROM centos:centos6
2
+
3
+ RUN yum -y install nc
4
+
5
+ EXPOSE 8080
6
+
7
+ CMD nc -l 8080
@@ -0,0 +1,7 @@
1
+ FROM ruby
2
+ RUN apt-get update -qq && apt-get install -y build-essential libpq-dev
3
+ RUN mkdir /myapp
4
+ WORKDIR /myapp
5
+ ADD Gemfile /myapp/Gemfile
6
+ RUN bundle install
7
+ ADD . /myapp
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gem 'rails', '4.0.2'
@@ -0,0 +1,13 @@
1
+ db:
2
+ image: postgres:latest
3
+ ports:
4
+ - "5432"
5
+ web:
6
+ build: .
7
+ command: bundle exec rackup -p 3000
8
+ volumes:
9
+ - .:/myapp
10
+ ports:
11
+ - "3000:3000"
12
+ links:
13
+ - db
@@ -0,0 +1,7 @@
1
+ cd /docker_brick
2
+ git pull
3
+ gem build docker_brick.gemspec
4
+ gem install brick-0.0.1.gem
5
+ cd /
6
+ rm -rf /myapp
7
+ cp -r /docker_brick/spec/projects/rails/myapp/ /
@@ -0,0 +1,19 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+
3
+ require 'rspec'
4
+
5
+ require 'brick'
6
+
7
+ require 'ostruct'
8
+
9
+
10
+
11
+ Docker.logger=Logger.new(STDOUT)
12
+
13
+
14
+ RSpec.shared_context "local paths" do
15
+ def project_dir
16
+ File.expand_path(File.join(File.dirname(__FILE__), '..'))
17
+ end
18
+ end
19
+
@@ -0,0 +1,33 @@
1
+ ---
2
+ test_volume:
3
+ image: "rastasheep/ubuntu-sshd:14.04"
4
+ environment:
5
+ - ABC=development
6
+ - CYCY=TEST
7
+ volumes:
8
+ - /root/hello_docker
9
+ - /root/test.rb:/test.rb:ro
10
+ - /nc_server:/test
11
+ data_container:
12
+ image: ubuntu:latest
13
+ env_array:
14
+ environment:
15
+ - ABC=development
16
+ - CYCY=TEST
17
+ env_hash:
18
+ environment:
19
+ ABC: test
20
+ CDE: cycy
21
+ command_test:
22
+ image: "rastasheep/ubuntu-sshd:14.04"
23
+ command: /bin/bash -c 'while true; do env; sleep 1; done'
24
+ port_test:
25
+ ports:
26
+ - "5432"
27
+ - "3001:22"
28
+ volume_test:
29
+ volumes:
30
+ - /root/hello_docker
31
+ - /root/test.rb:/test.rb:ro
32
+ - /nc_server:/test
33
+
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+ include Brick::Mixin::YamlHelper
3
+ include Brick::Mixin::DockerSupport
4
+
5
+ describe Brick::Mixin::DockerSupport do
6
+
7
+ before :all do
8
+ @config_hash = load_yaml_file File.join(File.dirname(__FILE__),'docker_support.yml' )
9
+ end
10
+
11
+ describe '#common_config' do
12
+
13
+
14
+
15
+ it 'environment variable array tranformation' do
16
+ expect((transform_docker_hash @config_hash['env_array'])["Env"]).to eq ["ABC=development","CYCY=TEST"]
17
+ end
18
+
19
+ it 'environment variable hash tranformation' do
20
+ expect((transform_docker_hash @config_hash['env_hash'])["Env"]).to eq ["ABC=test","CDE=cycy"]
21
+ end
22
+
23
+ it 'command tranformation' do
24
+ expect((transform_docker_hash @config_hash['command_test'])["Cmd"]).to eq ["/bin/bash","-c","while true; do env; sleep 1; done"]
25
+ end
26
+
27
+ end
28
+
29
+
30
+ describe '#create_config' do
31
+ #create_config_hash = create_config @config_hash
32
+ it 'port configruation for creating container' do
33
+ expect((create_config @config_hash['port_test'])["ExposedPorts"]).to eq({"5432/tcp"=>{}, "22/tcp"=>{}})
34
+ end
35
+
36
+ it 'port attribute should be removed creating container' do
37
+ expect((create_config @config_hash['port_test'])["Ports"]).to eq nil
38
+ end
39
+
40
+ it 'volume configruation for creating container' do
41
+ expect((create_config @config_hash['volume_test'])["Volumes"]).to eq({"/root/hello_docker"=>{}, "/test.rb"=>{}, "/test"=>{}})
42
+ end
43
+
44
+
45
+ end
46
+
47
+ describe '#start_config' do
48
+ #create_config_hash = start_config @config_hash
49
+ it 'port configruation for starting container' do
50
+ expect((start_config @config_hash['port_test'])["PortBindings"]).to eq({"5432/tcp"=>[{ "HostPort"=> "5432" }], "22/tcp"=>[{ "HostPort"=> "3001" }]})
51
+ end
52
+
53
+ it 'port attribute should be removed starting container' do
54
+ expect((start_config @config_hash['port_test'])["Ports"]).to eq nil
55
+ end
56
+
57
+ it 'volume configruation for starting container' do
58
+ expect((start_config @config_hash['volume_test'])["Binds"]).to eq(["/root/hello_docker:/root/hello_docker:rw","/root/test.rb:/test.rb:ro","/nc_server:/test:rw"])
59
+ end
60
+
61
+ it 'volume attribute should be removed starting container' do
62
+ expect((start_config @config_hash['volume_test'])["Volumes"]).to eq nil
63
+ end
64
+ end
65
+
66
+ end
@@ -0,0 +1,7 @@
1
+ FROM centos:centos6
2
+
3
+ RUN yum -y install nc
4
+
5
+ EXPOSE 8080
6
+
7
+ CMD nc -l 8080
@@ -0,0 +1,3 @@
1
+ ---
2
+ build_image:
3
+ build: ./dockerfile
@@ -0,0 +1,41 @@
1
+ ---
2
+ nginx:
3
+ image: "nginx:latest"
4
+ links:
5
+ - web
6
+ - registry
7
+ ports:
8
+ - "9080:80"
9
+ - "9443:443"
10
+ volumes:
11
+ - "./nginx/nginx.conf:/etc/nginx/conf.d/docker-registry.conf:ro"
12
+ - "./nginx/docker-registry.key:/etc/nginx/docker-registry.key:ro"
13
+ - "./nginx/docker-registry.cert:/etc/nginx/docker-registry.cert:ro"
14
+ - "./nginx/docker-registry.conf:/etc/nginx/docker-registry.conf:ro"
15
+ - "./nginx/docker-registry.htpasswd:/etc/nginx/docker-registry.htpasswd:ro"
16
+ registry:
17
+ environment:
18
+ CACHE_REDIS_HOST: redis
19
+ CACHE_REDIS_PORT: 6379
20
+ SEARCH_BACKEND: sqlalchemy
21
+ SETTINGS_FLAVOR: local
22
+ SQLALCHEMY_INDEX_DATABASE: "sqlite:////var/docker-registry-storage/docker-registry.db"
23
+ STORAGE_PATH: /var/docker-registry-storage
24
+ image: "registry:latest"
25
+ links:
26
+ - redis
27
+ ports:
28
+ - "5000:5000"
29
+ volumes:
30
+ - "/var/docker-registry-storage:/var/docker-registry-storage"
31
+ web:
32
+ build: "."
33
+ environment:
34
+ DOCKER_HUB_USER: USERNAME
35
+ DOCKER_HUB_PASSWORD: PASSWORD
36
+ links:
37
+ - redis
38
+ - registry
39
+ redis:
40
+ image: "redis:latest"
41
+
@@ -0,0 +1,19 @@
1
+ ---
2
+ db:
3
+ image: rastasheep/ubuntu-sshd:14.04
4
+ ports:
5
+ - "5432"
6
+ - "3001:22"
7
+ tty: true
8
+ Command: /usr/sbin/sshd -D
9
+ web:
10
+ image: ubuntu:latest
11
+ command: /bin/bash -c 'while true; do env; sleep 1; done'
12
+ ports:
13
+ - "3000:22"
14
+ tty: true
15
+ links:
16
+ - db
17
+ environment:
18
+ ABC: test
19
+ CDE: cycy
@@ -0,0 +1,6 @@
1
+ ---
2
+ redis:
3
+ image: "redis:latest"
4
+ environment:
5
+ - ABC=development
6
+ - CYCY=TEST
@@ -0,0 +1,10 @@
1
+ ---
2
+ test_volume:
3
+ image: "rastasheep/ubuntu-sshd:14.04"
4
+ environment:
5
+ - ABC=development
6
+ - CYCY=TEST
7
+ volumes:
8
+ - /root/hello_docker
9
+ - /root/test.rb:/test.rb:ro
10
+ - /nc_server:/test
@@ -0,0 +1,19 @@
1
+ ---
2
+ data_container:
3
+ image: ubuntu:latest
4
+ volumes:
5
+ - /hello_docker
6
+ - /tmp/test.rb:/test.rb:ro
7
+ - /tmp:/test
8
+ command: /bin/bash -c 'while true; do env; sleep 1; done'
9
+ app_container:
10
+ image: "rastasheep/ubuntu-sshd:14.04"
11
+ ports:
12
+ - "3005:22"
13
+ volumes_from:
14
+ - data_container
15
+ interactive_container:
16
+ image: ubuntu:latest
17
+ command: /bin/bash
18
+ tty: true
19
+ open_stdin: true
@@ -0,0 +1,70 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe Brick::Models::Project do
5
+
6
+ before :all do
7
+ `docker stop $(docker ps -aq)`
8
+ `docker rm $(docker ps -aq)`
9
+ @config_file = File.join(File.dirname(__FILE__),'fig_single.yml' )
10
+ end
11
+
12
+ subject(:fig_single) { described_class.new("bdt",{:config_file=>@config_file}) }
13
+
14
+ describe '#initialize' do
15
+
16
+ context "when parsing fig_completed.yml" do
17
+ it "parse redis service" do
18
+ #service nginx
19
+ redis = OpenStruct.new
20
+
21
+ redis.images = "redis:latest"
22
+
23
+ #subject.services.each{|service|puts "links=#{service.service_config_hash["links"]}"; puts service.service_config_hash}
24
+
25
+ expect(fig_single.services["redis"].name).to eq 'bdt_redis_1'
26
+
27
+
28
+ end
29
+ end
30
+ end
31
+
32
+ describe "#create a single service from image" do
33
+ context "no link support" do
34
+
35
+ context "the redis container doesn't exist" do
36
+ it "create redis service" do
37
+ instance=fig_single.run_services 'redis'
38
+
39
+ puts instance
40
+ end
41
+ end
42
+
43
+ context "the redis container already exist" do
44
+ it "create web service" do
45
+ instance=fig_single.run_services 'redis'
46
+
47
+ puts instance
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ subject(:fig_dependency) { described_class.new("bdt",{:config_file=>File.join(File.dirname(__FILE__),'fig_dependency.yml' )}) }
54
+
55
+ describe "#create a service which has dependency" do
56
+ context "no link support" do
57
+
58
+ context "enable dependency" do
59
+ it "create web service" do
60
+ instance=fig_dependency.run_services 'web', true
61
+
62
+ fig_dependency.services.each_value{|service| expect(service.running?).to eq(true)}
63
+
64
+
65
+ end
66
+ end
67
+ end
68
+ end
69
+
70
+ end
@@ -0,0 +1,80 @@
1
+ require 'spec_helper'
2
+ include Brick::Mixin::YamlHelper
3
+
4
+ describe Brick::Models::Service do
5
+
6
+ before :all do
7
+ `docker stop $(docker ps -aq)`
8
+ `docker rm $(docker ps -aq)`
9
+ @client = Brick::Docker::DockerClient::default
10
+ `mkdir -p /hello_docker`
11
+ `echo hello > /tmp/test.rb`
12
+ end
13
+
14
+ describe 'test data volumes' do
15
+
16
+ config_hash = load_yaml_file File.join(File.dirname(__FILE__),'fig_volumes.yml' )
17
+
18
+ subject(:fig_volumes) { described_class.new("test_volume", config_hash["test_volume"],@client ) }
19
+
20
+ it 'if it has volumes config' do
21
+ fig_volumes.run
22
+
23
+ expect(fig_volumes.container_info["Volumes"]).to eq({"/root/hello_docker"=>"/root/hello_docker", "/test"=>"/nc_server", "/test.rb"=>"/root/test.rb"})
24
+ end
25
+ end
26
+
27
+ describe 'test data volumes' do
28
+ config_hash = load_yaml_file File.join(File.dirname(__FILE__),'fig_volumes_from.yml' )
29
+
30
+ subject(:data_container) { described_class.new("data_container", config_hash["data_container"],@client ) }
31
+
32
+ subject(:app_container) { described_class.new("app_container", config_hash["app_container"],@client ) }
33
+
34
+ it 'app_container volumes from data_container' do
35
+ app_container.update_volumes_from({"data_container" => data_container})
36
+ app_container.run
37
+
38
+ expect(app_container.running?).to eq true
39
+ expect(data_container.running?).to eq true
40
+
41
+ expect(app_container.container_info["Volumes"]).to eq({"/hello_docker"=> "/hello_docker",
42
+ "/test"=> "/tmp",
43
+ "/test.rb"=> "/tmp/test.rb"
44
+ })
45
+
46
+ expect(app_container.container_info["HostConfig"]["VolumesFrom"]).to eq(["data_container:rw"])
47
+ end
48
+ end
49
+
50
+
51
+ describe 'test interactive container' do
52
+ config_hash = load_yaml_file File.join(File.dirname(__FILE__),'fig_volumes_from.yml' )
53
+ config_hash.merge!({"tty"=>true, "open_stdin"=>true})
54
+
55
+ subject(:interactive_container) { described_class.new("interactive_container", config_hash["interactive_container"],@client ) }
56
+ it 'interactive container' do
57
+ local_logger=Docker.logger
58
+ Docker.logger=nil
59
+ interactive_container.run
60
+
61
+ #interactive_container.attach
62
+ Docker.logger=local_logger
63
+ end
64
+ end
65
+
66
+ describe '.build' do
67
+ config_hash = load_yaml_file File.join(File.dirname(__FILE__),'fig_build.yml' )
68
+
69
+ subject(:build_image) { described_class.new("build_image", config_hash["build_image"],@client ) }
70
+
71
+ context "build image from relative path" do
72
+
73
+ it "build image from docker file" do
74
+ build_image.build "test_build_image",true, File.dirname(__FILE__)
75
+ end
76
+
77
+ end
78
+ end
79
+ end
80
+