docker-spec 0.8.1 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a8ff71a56ef41011aa9419939fcbe126dfad03db
4
- data.tar.gz: b8b7050569474f29a16ebd954584528f4e8c781d
3
+ metadata.gz: 3ca15895fd936cd2a664100fd10ac43d858c6fca
4
+ data.tar.gz: e70a7268eaeb90054b35d4171d7b29ac07abdb80
5
5
  SHA512:
6
- metadata.gz: 2e4c04eff8f2c2d5d859f59f9838d3ce813393187ac80eb5a506155968e7401af7dd422004841af939c60843a6ee3b6e8b79a28682c72497eac01ae241da7872
7
- data.tar.gz: 5cbd4e789bc14c7dbd0f323600add1cc5e7767b2728106c309037c76b32af210d7efa94a6a2ef16065740e93826bab781983795784fdd962152e6f65f8e1fe84
6
+ metadata.gz: 0114ca4f5e090d18dc1c3dd2ad9610d5e08d02fb4bba34059005f0ed3dd70cf03ca2ff41639729165447018c16fd0cef0ad0b573bb01132bcd7726800fbb038a
7
+ data.tar.gz: 7597bc6a959191ec31f192fcb9af765cf6a9363a8821030f0c262e121b633def1690d841a0c6b5ec7e54816dc9f4af9e101ed8cbdc70dae184b9f1e295fdce30
data/lib/docker/spec.rb CHANGED
@@ -18,7 +18,7 @@ class DockerSpec
18
18
 
19
19
  include Singleton
20
20
 
21
- attr_accessor :config, :test_failed
21
+ attr_accessor :config, :test_failed, :container
22
22
 
23
23
  CONTAINER_RUN_WAIT_TIMEOUT = 60
24
24
  CONFIG_FILE = 'docker_spec.yml'
@@ -97,7 +97,6 @@ class DockerSpec
97
97
  @config[:name] || fail('name is not defined in docker_spec.yml')
98
98
  @config[:account] || fail('account is not defined in docker_spec.yml')
99
99
  @config[:image_name] = format '%s/%s', @config[:account], @config[:name]
100
- @config[:container_name] = format 'docker_spec-%s', @config[:name]
101
100
  @config[:build_image] = get_config(:build_image, 'DOCKER_SPEC_BUILD_DOCKER_IMAGE',
102
101
  'Build docker image? ')
103
102
  @config[:build_root] = get_config(:build_root, 'DOCKER_SPEC_BUILD_ROOT',
@@ -146,7 +145,6 @@ EOF
146
145
  end
147
146
 
148
147
  rc.before(:suite) do
149
- DockerSpec.instance.delete_container
150
148
  DockerSpec.instance.start_container
151
149
  end
152
150
 
@@ -166,27 +164,30 @@ EOF
166
164
 
167
165
  opts['env'] = @config[:env] unless @config[:env].nil?
168
166
  opts['Image'] = @config[:image_name]
169
- opts['name'] = @config[:container_name]
170
- container = Docker::Container.create(opts).start
167
+ @container = Docker::Container.create(opts).start
168
+ Timeout::timeout(10) do
169
+ loop do
170
+ @container.refresh!
171
+ break if @container.info["State"]["Running"]
172
+ end
173
+ end
174
+
171
175
 
172
176
  # Check the logs, when it stops logging we can assume the container
173
177
  # is fully up and running
174
178
  log_size_ary = []
175
179
  CONTAINER_RUN_WAIT_TIMEOUT.times do
176
- log_size_ary << container.logs(stdout: true).size
180
+ log_size_ary << @container.logs(stdout: true).size
177
181
  break if log_size_ary.last(3).sort.uniq.size == 1 &&
178
182
  log_size_ary.last(3).sort.uniq.last > 0
179
183
  sleep 1
180
184
  end
181
- set :docker_container, container.id
185
+ set :docker_container, @container.id
182
186
  end
183
187
 
184
188
  def delete_container
185
- filters = { name: [@config[:container_name]] }.to_json
186
- Docker::Container.all(all: true, filters: filters).each do |c|
187
- c.kill
188
- c.delete
189
- end
189
+ @container.kill
190
+ @container.delete
190
191
  end
191
192
 
192
193
  def clean_up
@@ -195,7 +196,7 @@ EOF
195
196
  "\nKeep container running? ")
196
197
  if @config[:keep_running]
197
198
  puts "\nINFO: To connect to a running container: \n\n" \
198
- "docker exec -ti #{@config[:container_name]} bash"
199
+ "docker exec -ti #{@container.info["Name"][1..-1]} bash"
199
200
  else
200
201
  delete_container
201
202
  end
@@ -1,15 +1,10 @@
1
1
  module Docker
2
2
  module Spec
3
3
  def self.docker_tests
4
- describe 'Running a docker container' do
4
+ describe 'Running a docker container', test: :default do
5
5
  before(:all) do
6
- @config = DockerSpec.instance.config
7
- @image = Docker::Image.all.detect do |i|
8
- i.info['RepoTags'].include?(@config[:image_name] + ':latest')
9
- end
10
- @container = Docker::Container.all.select do |c|
11
- c.info["Names"] == [ "/" + @config[:container_name] ]
12
- end.first
6
+ @container = DockerSpec.instance.container
7
+ @image = @container.info["Image"]
13
8
  end
14
9
 
15
10
  it 'should be available' do
@@ -1,5 +1,5 @@
1
1
  module Docker
2
2
  module Spec
3
- VERSION = "0.8.1"
3
+ VERSION = "0.9.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker-spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Breinlinger
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-24 00:00:00.000000000 Z
11
+ date: 2018-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -189,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
189
189
  version: '0'
190
190
  requirements: []
191
191
  rubyforge_project:
192
- rubygems_version: 2.4.8
192
+ rubygems_version: 2.6.14
193
193
  signing_key:
194
194
  specification_version: 4
195
195
  summary: A docker spec library to build and test docker containers