docker-spec 0.8.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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