dockerapi 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -0
- data/Gemfile.lock +1 -1
- data/README.md +68 -5
- data/lib/docker/api/config.rb +70 -0
- data/lib/docker/api/image.rb +4 -0
- data/lib/docker/api/secret.rb +70 -0
- data/lib/docker/api/service.rb +91 -35
- data/lib/docker/api/task.rb +46 -0
- data/lib/docker/api/version.rb +1 -1
- data/lib/dockerapi.rb +3 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09aa5bf2a46df8ad42f1c4833fe7577610af14dde350730787b703e1080fa4c7'
|
4
|
+
data.tar.gz: 0be7a47781bbc7f75824f65b8fea5d7bcbd11deb98451f2b030856391a68d5c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0573e091c6cbbc6c2fa3411ca6336a328e4677a656f22bd7d4a036064f8c813523c6a686c2e3ec03df2ec194f65c1b69c6d5be5782c1a1fca80460f3c383db9
|
7
|
+
data.tar.gz: 5fa96ad226aad3faa2e3a2836948687adf29079b0495e88ceb42424bbe14d2664cab4a8f59a2a795e2f73c9fe59318504a9c454b4964d1b16a04165023c7e8f8
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,27 @@
|
|
1
|
+
# 0.11.0
|
2
|
+
|
3
|
+
Add `Docker::API::Task` methods:
|
4
|
+
* list
|
5
|
+
* details
|
6
|
+
* logs
|
7
|
+
|
8
|
+
Add `Docker::API::Secret` methods:
|
9
|
+
* create
|
10
|
+
* update
|
11
|
+
* list
|
12
|
+
* details
|
13
|
+
* delete
|
14
|
+
|
15
|
+
Add `Docker::API::Config` methods:
|
16
|
+
* create
|
17
|
+
* update
|
18
|
+
* list
|
19
|
+
* details
|
20
|
+
* delete
|
21
|
+
|
22
|
+
Add `Docker::API::Image` methods:
|
23
|
+
* distribution
|
24
|
+
|
1
25
|
# 0.10.0
|
2
26
|
|
3
27
|
Add `Docker::API::Service` methods:
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -44,6 +44,9 @@ image.list
|
|
44
44
|
# Inspect image
|
45
45
|
image.details("image")
|
46
46
|
|
47
|
+
# Return image digest and platform information by contacting the registry.
|
48
|
+
image.distribution("image")
|
49
|
+
|
47
50
|
# History
|
48
51
|
image.history("image")
|
49
52
|
|
@@ -325,7 +328,67 @@ service.details("nginx-service")
|
|
325
328
|
|
326
329
|
# Delete service
|
327
330
|
service.delete("nginx-service")
|
331
|
+
```
|
332
|
+
|
333
|
+
### Task
|
334
|
+
```ruby
|
335
|
+
# Connect to local task endpoints
|
336
|
+
task = Docker::API::Task.new
|
337
|
+
|
338
|
+
# List tasks
|
339
|
+
task.list
|
340
|
+
|
341
|
+
# View task logs
|
342
|
+
task.logs("task-id", stdout: true)
|
343
|
+
|
344
|
+
# Inspect service
|
345
|
+
task.details("task-id")
|
346
|
+
```
|
347
|
+
|
348
|
+
### Secret
|
349
|
+
```ruby
|
350
|
+
# Connect to local secret endpoints
|
351
|
+
secret = Docker::API::Secret.new
|
352
|
+
|
353
|
+
# List secrets
|
354
|
+
secret.list
|
355
|
+
|
356
|
+
# Create a secret
|
357
|
+
secret.create({Name: "secret-name", Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg=="})
|
358
|
+
|
359
|
+
# Inspect secrets
|
360
|
+
secret.details("secret-name")
|
361
|
+
|
362
|
+
# Update a secret (needs version and current Spec)
|
363
|
+
version = secret.details( "secret-name" ).json["Version"]["Index"]
|
364
|
+
spec = secret.details("secret-name").json["Spec"]
|
365
|
+
secret.update("secret-name", {version: version}, spec.merge!({ Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==" }))
|
366
|
+
|
367
|
+
# Delete secret
|
368
|
+
secret.delete("secret-name")
|
369
|
+
```
|
370
|
+
|
371
|
+
### Config
|
372
|
+
```ruby
|
373
|
+
# Connect to local config endpoints
|
374
|
+
config = Docker::API::Config.new
|
375
|
+
|
376
|
+
# List configs
|
377
|
+
config.list
|
378
|
+
|
379
|
+
# Create a config
|
380
|
+
config.create({Name: "config-name", Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg=="})
|
381
|
+
|
382
|
+
# Inspect configs
|
383
|
+
config.details("config-name")
|
384
|
+
|
385
|
+
# Update a configs (needs version and current Spec)
|
386
|
+
version = config.details( "config-name" ).json["Version"]["Index"]
|
387
|
+
spec = config.details("config-name").json["Spec"]
|
388
|
+
config.update("config-name", {version: version}, spec.merge!({ Data: "VEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCg==" }))
|
328
389
|
|
390
|
+
# Delete config
|
391
|
+
config.delete("config-name")
|
329
392
|
```
|
330
393
|
|
331
394
|
### Connection
|
@@ -410,11 +473,11 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
410
473
|
| Exec | Ok | Ok | 8/21 |
|
411
474
|
| Swarm | Ok | Ok | 8/28 |
|
412
475
|
| Node | Ok | Ok | 8/28 |
|
413
|
-
| Service |
|
414
|
-
| Task |
|
415
|
-
| Secret |
|
416
|
-
| Config |
|
417
|
-
| Distribution |
|
476
|
+
| Service | Ok | Ok | 8/28 |
|
477
|
+
| Task | Ok | Ok | 9/4 |
|
478
|
+
| Secret | Ok | Ok | 9/4 |
|
479
|
+
| Config | Ok | Ok | 9/4 |
|
480
|
+
| Distribution | Ok | Ok | 9/4 |
|
418
481
|
| Plugin | 7/24 | 7/24 | 9/4 |
|
419
482
|
|
420
483
|
## Contributing
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# This class represents the Docker API endpoints regarding configs.
|
2
|
+
#
|
3
|
+
# @see https://docs.docker.com/engine/api/v1.40/#tag/Config
|
4
|
+
#
|
5
|
+
# Configs are application configurations that can be used by services. Swarm mode must be enabled for these endpoints to work.
|
6
|
+
class Docker::API::Config < Docker::API::Base
|
7
|
+
|
8
|
+
# List configs
|
9
|
+
#
|
10
|
+
# Docker API: GET /configs
|
11
|
+
#
|
12
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/ConfigList
|
13
|
+
#
|
14
|
+
# @param params [Hash]: Parameters that are appended to the URL.
|
15
|
+
def list params = {}
|
16
|
+
validate Docker::API::InvalidParameter, [:filters], params
|
17
|
+
@connection.get(build_path("/configs",params))
|
18
|
+
end
|
19
|
+
|
20
|
+
# Create a config
|
21
|
+
#
|
22
|
+
# Docker API: POST /configs/create
|
23
|
+
#
|
24
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/ConfigCreate
|
25
|
+
#
|
26
|
+
# @param body [Hash]: Request body to be sent as json.
|
27
|
+
def create body = {}
|
28
|
+
validate Docker::API::InvalidRequestBody, [:Name, :Labels, :Data, :Templating], body
|
29
|
+
@connection.request(method: :post, path: "/configs/create", headers: {"Content-Type": "application/json"}, body: body.to_json)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Inspect a config
|
33
|
+
#
|
34
|
+
# Docker API: GET /configs/{id}
|
35
|
+
#
|
36
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/ConfigInspect
|
37
|
+
#
|
38
|
+
# @param name [String]: The ID or name of the config.
|
39
|
+
def details name
|
40
|
+
@connection.get("/configs/#{name}")
|
41
|
+
end
|
42
|
+
|
43
|
+
# Update a config
|
44
|
+
#
|
45
|
+
# Docker API: POST /configs/{id}/update
|
46
|
+
#
|
47
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/ConfigUpdate
|
48
|
+
#
|
49
|
+
# @param name [String]: The ID or name of the config.
|
50
|
+
#
|
51
|
+
# @param params [Hash]: Parameters that are appended to the URL.
|
52
|
+
#
|
53
|
+
# @param body [Hash]: Request body to be sent as json.
|
54
|
+
def update name, params = {}, body = {}
|
55
|
+
validate Docker::API::InvalidParameter, [:version], params
|
56
|
+
validate Docker::API::InvalidRequestBody, [:Name, :Labels, :Data, :Driver, :Templating], body
|
57
|
+
@connection.request(method: :post, path: build_path("/configs/#{name}/update",params), headers: {"Content-Type": "application/json"}, body: body.to_json)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Delete a config
|
61
|
+
#
|
62
|
+
# Docker API: DELETE /configs/{id}
|
63
|
+
#
|
64
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/ConfigDelete
|
65
|
+
#
|
66
|
+
# @param name [String]: The ID or name of the config.
|
67
|
+
def delete name
|
68
|
+
@connection.delete("/configs/#{name}")
|
69
|
+
end
|
70
|
+
end
|
data/lib/docker/api/image.rb
CHANGED
@@ -0,0 +1,70 @@
|
|
1
|
+
# This class represents the Docker API endpoints regarding secrets.
|
2
|
+
#
|
3
|
+
# @see https://docs.docker.com/engine/api/v1.40/#tag/Secret
|
4
|
+
#
|
5
|
+
# Secrets are sensitive data that can be used by services. Swarm mode must be enabled for these endpoints to work.
|
6
|
+
class Docker::API::Secret < Docker::API::Base
|
7
|
+
|
8
|
+
# List secrets
|
9
|
+
#
|
10
|
+
# Docker API: GET /secrets
|
11
|
+
#
|
12
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/SecretList
|
13
|
+
#
|
14
|
+
# @param params [Hash]: Parameters that are appended to the URL.
|
15
|
+
def list params = {}
|
16
|
+
validate Docker::API::InvalidParameter, [:filters], params
|
17
|
+
@connection.get(build_path("/secrets",params))
|
18
|
+
end
|
19
|
+
|
20
|
+
# Create a secret
|
21
|
+
#
|
22
|
+
# Docker API: POST /secrets/create
|
23
|
+
#
|
24
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/SecretCreate
|
25
|
+
#
|
26
|
+
# @param body [Hash]: Request body to be sent as json.
|
27
|
+
def create body = {}
|
28
|
+
validate Docker::API::InvalidRequestBody, [:Name, :Labels, :Data, :Driver, :Templating], body
|
29
|
+
@connection.request(method: :post, path: "/secrets/create", headers: {"Content-Type": "application/json"}, body: body.to_json)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Inspect a secret
|
33
|
+
#
|
34
|
+
# Docker API: GET /secrets/{id}
|
35
|
+
#
|
36
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/SecretInspect
|
37
|
+
#
|
38
|
+
# @param name [String]: The ID or name of the secret.
|
39
|
+
def details name
|
40
|
+
@connection.get("/secrets/#{name}")
|
41
|
+
end
|
42
|
+
|
43
|
+
# Update a secret
|
44
|
+
#
|
45
|
+
# Docker API: POST /secrets/{id}/update
|
46
|
+
#
|
47
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/SecretUpdate
|
48
|
+
#
|
49
|
+
# @param name [String]: The ID or name of the secret.
|
50
|
+
#
|
51
|
+
# @param params [Hash]: Parameters that are appended to the URL.
|
52
|
+
#
|
53
|
+
# @param body [Hash]: Request body to be sent as json.
|
54
|
+
def update name, params = {}, body = {}
|
55
|
+
validate Docker::API::InvalidParameter, [:version], params
|
56
|
+
validate Docker::API::InvalidRequestBody, [:Name, :Labels, :Data, :Driver, :Templating], body
|
57
|
+
@connection.request(method: :post, path: build_path("/secrets/#{name}/update",params), headers: {"Content-Type": "application/json"}, body: body.to_json)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Delete a secret
|
61
|
+
#
|
62
|
+
# Docker API: DELETE /secrets/{id}
|
63
|
+
#
|
64
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/SecretDelete
|
65
|
+
#
|
66
|
+
# @param name [String]: The ID or name of the secret.
|
67
|
+
def delete name
|
68
|
+
@connection.delete("/secrets/#{name}")
|
69
|
+
end
|
70
|
+
end
|
data/lib/docker/api/service.rb
CHANGED
@@ -1,42 +1,98 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
# This class represents the Docker API endpoints regarding services.
|
2
|
+
#
|
3
|
+
# @see https://docs.docker.com/engine/api/v1.40/#tag/Service
|
4
|
+
#
|
5
|
+
# Services are the definitions of tasks to run on a swarm. Swarm mode must be enabled for these endpoints to work.
|
6
|
+
class Docker::API::Service < Docker::API::Base
|
4
7
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
8
|
+
# List services
|
9
|
+
#
|
10
|
+
# Docker API: GET /services
|
11
|
+
#
|
12
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/ServiceList
|
13
|
+
#
|
14
|
+
# @param params [Hash]: Parameters that are appended to the URL.
|
15
|
+
def list params = {}
|
16
|
+
validate Docker::API::InvalidParameter, [:filters], params
|
17
|
+
@connection.get(build_path("/services", params))
|
18
|
+
end
|
16
19
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
20
|
+
# Create a service
|
21
|
+
#
|
22
|
+
# Docker API: POST /services/create
|
23
|
+
#
|
24
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/ServiceCreate
|
25
|
+
#
|
26
|
+
# @param body [Hash]: Request body to be sent as json.
|
27
|
+
#
|
28
|
+
# @param authentication [Hash]: Authentication parameters.
|
29
|
+
def create body = {}, authentication = {}
|
30
|
+
validate Docker::API::InvalidRequestBody, [:Name, :Labels, :TaskTemplate, :Mode, :UpdateConfig, :RollbackConfig, :Networks, :EndpointSpec], body
|
31
|
+
headers = {"Content-Type": "application/json"}
|
32
|
+
headers.merge!({"X-Registry-Auth" => Base64.urlsafe_encode64(authentication.to_json.to_s)}) if authentication.keys.size > 0
|
33
|
+
@connection.request(method: :post, path: "/services/create", headers: headers, body: body.to_json)
|
34
|
+
end
|
25
35
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
36
|
+
# Update a service
|
37
|
+
#
|
38
|
+
# Docker API: POST /services/{id}/update
|
39
|
+
#
|
40
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/ServiceUpdate
|
41
|
+
#
|
42
|
+
# @param name [String]: The ID or name of the service.
|
43
|
+
#
|
44
|
+
# @param params [Hash]: Parameters that are appended to the URL.
|
45
|
+
#
|
46
|
+
# @param body [Hash]: Request body to be sent as json.
|
47
|
+
#
|
48
|
+
# @param authentication [Hash]: Authentication parameters.
|
49
|
+
def update name, params = {}, body = {}, authentication = {}
|
50
|
+
# view https://github.com/docker/swarmkit/issues/1394#issuecomment-240850719
|
51
|
+
validate Docker::API::InvalidParameter, [:version, :registryAuthFrom, :rollback], params
|
52
|
+
validate Docker::API::InvalidRequestBody, [:Name, :Labels, :TaskTemplate, :Mode, :UpdateConfig, :RollbackConfig, :Networks, :EndpointSpec], body
|
53
|
+
headers = {"Content-Type": "application/json"}
|
54
|
+
headers.merge!({"X-Registry-Auth" => Base64.urlsafe_encode64(authentication.to_json.to_s)}) if authentication.keys.size > 0
|
55
|
+
@connection.request(method: :post, path: build_path("/services/#{name}/update", params), headers: headers, body: body.to_json)
|
56
|
+
end
|
30
57
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
58
|
+
# Inspect a service
|
59
|
+
#
|
60
|
+
# Docker API: GET /services/{id}
|
61
|
+
#
|
62
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/ServiceInspect
|
63
|
+
#
|
64
|
+
# @param name [String]: The ID or name of the service.
|
65
|
+
#
|
66
|
+
# @param params [Hash]: Parameters that are appended to the URL.
|
67
|
+
def details name, params = {}
|
68
|
+
validate Docker::API::InvalidParameter, [:insertDefaults], params
|
69
|
+
@connection.get(build_path("/services/#{name}", params))
|
70
|
+
end
|
35
71
|
|
36
|
-
|
37
|
-
|
38
|
-
|
72
|
+
# Get stdout and stderr logs from a service.
|
73
|
+
#
|
74
|
+
# Note: This endpoint works only for services with the local, json-file or journald logging drivers.
|
75
|
+
#
|
76
|
+
# Docker API: GET /services/{id}/logs
|
77
|
+
#
|
78
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/ServiceLogs
|
79
|
+
#
|
80
|
+
# @param name [String]: The ID or name of the service.
|
81
|
+
#
|
82
|
+
# @param params [Hash]: Parameters that are appended to the URL.
|
83
|
+
def logs name, params = {}
|
84
|
+
validate Docker::API::InvalidParameter, [:details, :follow, :stdout, :stderr, :since, :timestamps, :tail], params
|
85
|
+
@connection.get(build_path("/services/#{name}/logs", params))
|
86
|
+
end
|
39
87
|
|
40
|
-
|
88
|
+
# Delete a service
|
89
|
+
#
|
90
|
+
# Docker API: DELETE /services/{id}
|
91
|
+
#
|
92
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/ServiceDelete
|
93
|
+
#
|
94
|
+
# @param name [String]: The ID or name of the service.
|
95
|
+
def delete name
|
96
|
+
@connection.delete("/services/#{name}")
|
41
97
|
end
|
42
|
-
end
|
98
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# This class represents the Docker API endpoints regarding tasks.
|
2
|
+
#
|
3
|
+
# @see https://docs.docker.com/engine/api/v1.40/#tag/Task
|
4
|
+
#
|
5
|
+
# A task is a container running on a swarm. It is the atomic scheduling unit of swarm. Swarm mode must be enabled for these endpoints to work.
|
6
|
+
class Docker::API::Task < Docker::API::Base
|
7
|
+
|
8
|
+
# List tasks
|
9
|
+
#
|
10
|
+
# Docker API: GET /tasks
|
11
|
+
#
|
12
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/TaskList
|
13
|
+
#
|
14
|
+
# @param params [Hash]: Parameters that are appended to the URL.
|
15
|
+
def list params = {}
|
16
|
+
validate Docker::API::InvalidParameter, [:filters], params
|
17
|
+
@connection.get(build_path("/tasks",params))
|
18
|
+
end
|
19
|
+
|
20
|
+
# Inspect a task
|
21
|
+
#
|
22
|
+
# Docker API: GET /tasks/{id}
|
23
|
+
#
|
24
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/TaskInspect
|
25
|
+
#
|
26
|
+
# @param name [String]: The ID or name of the task.
|
27
|
+
def details name
|
28
|
+
@connection.get("/tasks/#{name}")
|
29
|
+
end
|
30
|
+
|
31
|
+
# Get stdout and stderr logs from a task.
|
32
|
+
#
|
33
|
+
# Note: This endpoint works only for services with the local, json-file or journald logging drivers.
|
34
|
+
#
|
35
|
+
# Docker API: GET /tasks/{id}/logs
|
36
|
+
#
|
37
|
+
# @see https://docs.docker.com/engine/api/v1.40/#operation/TaskLogs
|
38
|
+
#
|
39
|
+
# @param name (String) : The ID or name of the task.
|
40
|
+
#
|
41
|
+
# @param params (Hash) : Parameters that are appended to the URL.
|
42
|
+
def logs name, params = {}
|
43
|
+
validate Docker::API::InvalidParameter, [:details, :follow, :stdout, :stderr, :since, :timestamps, :tail], params
|
44
|
+
@connection.get(build_path("/tasks/#{name}/logs", params))
|
45
|
+
end
|
46
|
+
end
|
data/lib/docker/api/version.rb
CHANGED
data/lib/dockerapi.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dockerapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alysson A. Costa
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-07-
|
11
|
+
date: 2020-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -44,6 +44,7 @@ files:
|
|
44
44
|
- bin/setup
|
45
45
|
- dockerapi.gemspec
|
46
46
|
- lib/docker/api/base.rb
|
47
|
+
- lib/docker/api/config.rb
|
47
48
|
- lib/docker/api/connection.rb
|
48
49
|
- lib/docker/api/container.rb
|
49
50
|
- lib/docker/api/error.rb
|
@@ -52,9 +53,11 @@ files:
|
|
52
53
|
- lib/docker/api/network.rb
|
53
54
|
- lib/docker/api/node.rb
|
54
55
|
- lib/docker/api/response.rb
|
56
|
+
- lib/docker/api/secret.rb
|
55
57
|
- lib/docker/api/service.rb
|
56
58
|
- lib/docker/api/swarm.rb
|
57
59
|
- lib/docker/api/system.rb
|
60
|
+
- lib/docker/api/task.rb
|
58
61
|
- lib/docker/api/version.rb
|
59
62
|
- lib/docker/api/volume.rb
|
60
63
|
- lib/dockerapi.rb
|