docker-compose-api 1.0.0 → 1.0.1
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.
- data/README.md +9 -0
- data/docker-compose-api.gemspec +1 -0
- data/lib/docker-compose/models/compose.rb +1 -1
- data/lib/docker-compose/models/compose_container.rb +11 -9
- data/lib/version.rb +1 -1
- data/spec/docker-compose/fixtures/Dockerfile +2 -0
- data/spec/docker-compose/models/compose_container_spec.rb +19 -1
- data/spec/spec_helper.rb +3 -0
- metadata +19 -1
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
[](https://travis-ci.org/mauricioklein/docker-compose-api)
|
2
2
|
[](https://codeclimate.com/github/mauricioklein/docker-compose-api)
|
3
3
|
[](https://codeclimate.com/github/mauricioklein/docker-compose-api/coverage)
|
4
|
+
[](https://badge.fury.io/rb/docker-compose-api)
|
4
5
|
|
5
6
|
# Docker Compose Api
|
6
7
|
|
@@ -8,6 +9,14 @@ Docker Compose API provides an easy way to parse docker compose files and lift t
|
|
8
9
|
|
9
10
|
## Instalation
|
10
11
|
|
12
|
+
Install the gem in whole environment
|
13
|
+
|
14
|
+
```ruby
|
15
|
+
gem install docker-compose-api
|
16
|
+
```
|
17
|
+
|
18
|
+
... or using Bundler
|
19
|
+
|
11
20
|
```ruby
|
12
21
|
# Add the line below on your Gemfile...
|
13
22
|
gem 'docker-compose-api', git: 'https://github.com/mauricioklein/docker-compose-api'
|
data/docker-compose-api.gemspec
CHANGED
@@ -3,7 +3,7 @@ require_relative 'compose_port'
|
|
3
3
|
require_relative '../utils/compose_utils'
|
4
4
|
|
5
5
|
class ComposeContainer
|
6
|
-
attr_reader :attributes
|
6
|
+
attr_reader :attributes
|
7
7
|
|
8
8
|
def initialize(hash_attributes)
|
9
9
|
@attributes = {
|
@@ -18,6 +18,7 @@ class ComposeContainer
|
|
18
18
|
}.reject{ |key, value| value.nil? }
|
19
19
|
|
20
20
|
# Docker client variables
|
21
|
+
@internal_image = nil
|
21
22
|
@container = nil
|
22
23
|
@dependencies = []
|
23
24
|
end
|
@@ -34,13 +35,14 @@ class ComposeContainer
|
|
34
35
|
|
35
36
|
# Build or pull image
|
36
37
|
if @attributes.key?(:image)
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
Docker::Image.create('fromImage' => @
|
38
|
+
@internal_image = @attributes[:image]
|
39
|
+
|
40
|
+
unless image_exists(@internal_image)
|
41
|
+
Docker::Image.create('fromImage' => @internal_image)
|
41
42
|
end
|
42
43
|
elsif @attributes.key?(:build)
|
43
|
-
|
44
|
+
@internal_image = SecureRandom.hex # Random name for image
|
45
|
+
Docker::Image.build_from_dir(@attributes[:build], {t: @internal_image})
|
44
46
|
end
|
45
47
|
end
|
46
48
|
|
@@ -70,7 +72,7 @@ class ComposeContainer
|
|
70
72
|
end
|
71
73
|
|
72
74
|
container_config = {
|
73
|
-
Image: @
|
75
|
+
Image: @internal_image,
|
74
76
|
Cmd: @attributes[:command],
|
75
77
|
Env: @attributes[:environment],
|
76
78
|
Volumes: @attributes[:volumes],
|
@@ -105,8 +107,8 @@ class ComposeContainer
|
|
105
107
|
#
|
106
108
|
# Check if a given image already exists in host
|
107
109
|
#
|
108
|
-
def image_exists
|
109
|
-
Docker::Image.exist?(
|
110
|
+
def image_exists(image_name)
|
111
|
+
Docker::Image.exist?(image_name)
|
110
112
|
end
|
111
113
|
|
112
114
|
public
|
data/lib/version.rb
CHANGED
@@ -44,7 +44,7 @@ describe ComposeContainer do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
context 'Start container' do
|
47
|
-
it 'should start/stop a container' do
|
47
|
+
it 'should start/stop a container from image' do
|
48
48
|
attributes = {
|
49
49
|
image: 'ubuntu:latest',
|
50
50
|
links: ['links:links'],
|
@@ -64,6 +64,24 @@ describe ComposeContainer do
|
|
64
64
|
expect(entry.running?).to be false
|
65
65
|
end
|
66
66
|
|
67
|
+
it 'should start/stop a container from build' do
|
68
|
+
attributes = {
|
69
|
+
build: File.expand_path('spec/docker-compose/fixtures/'),
|
70
|
+
links: ['links:links'],
|
71
|
+
volumes: {'/tmp' => {}}
|
72
|
+
}
|
73
|
+
|
74
|
+
entry = ComposeContainer.new(attributes)
|
75
|
+
|
76
|
+
#Start container
|
77
|
+
entry.start
|
78
|
+
expect(entry.running?).to be true
|
79
|
+
|
80
|
+
# Stop container
|
81
|
+
entry.stop
|
82
|
+
expect(entry.running?).to be false
|
83
|
+
end
|
84
|
+
|
67
85
|
it 'should not start a container without either image and build commands' do
|
68
86
|
attributes = {
|
69
87
|
links: ['links:links'],
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docker-compose-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -59,6 +59,22 @@ dependencies:
|
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: simplecov
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
62
78
|
description: A simple ruby client for docker-compose api
|
63
79
|
email:
|
64
80
|
- mauricio.klein.msk@gmail.com
|
@@ -80,6 +96,7 @@ files:
|
|
80
96
|
- lib/docker-compose/utils/compose_utils.rb
|
81
97
|
- lib/version.rb
|
82
98
|
- spec/docker-compose/docker_compose_spec.rb
|
99
|
+
- spec/docker-compose/fixtures/Dockerfile
|
83
100
|
- spec/docker-compose/fixtures/sample1.yaml
|
84
101
|
- spec/docker-compose/models/compose_container_spec.rb
|
85
102
|
- spec/docker-compose/utils/compose_utils_spec.rb
|
@@ -111,6 +128,7 @@ specification_version: 3
|
|
111
128
|
summary: A simple ruby client for docker-compose api
|
112
129
|
test_files:
|
113
130
|
- spec/docker-compose/docker_compose_spec.rb
|
131
|
+
- spec/docker-compose/fixtures/Dockerfile
|
114
132
|
- spec/docker-compose/fixtures/sample1.yaml
|
115
133
|
- spec/docker-compose/models/compose_container_spec.rb
|
116
134
|
- spec/docker-compose/utils/compose_utils_spec.rb
|