dockerapi 0.9.0 → 0.10.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 +10 -0
- data/Gemfile.lock +1 -1
- data/README.md +32 -1
- data/lib/docker/api/service.rb +42 -0
- data/lib/docker/api/version.rb +1 -1
- data/lib/dockerapi.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aeb3c1971c26c62d0737576e5ec79f2abcf536b1148be5272be8f501dfcae852
|
4
|
+
data.tar.gz: 1392073ca52d6fecfc12e642368713c2fa44a9ebbcd7629de5fb54faf9ac7209
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b03b8e5ce6d95f19c8dd6d357277a102fcc170b35ac989cd080db27c66efcad63125aaedab1c971a8ed435bed7c7447979d332a1b7f43686a2217907bf21fe8
|
7
|
+
data.tar.gz: 62cd2888ad859834cf949a6189f6e863e1b2f23ce9849fce4a39a1248cfa74efeaff5e0e6220a165d6b7980445a7773dc4bc3f8d4a678fc364a06b205fc07630
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -134,7 +134,7 @@ container.top("nginx").json
|
|
134
134
|
# View filesystem changes
|
135
135
|
container.changes("nginx")
|
136
136
|
|
137
|
-
# View
|
137
|
+
# View container logs
|
138
138
|
container.logs("nginx", stdout: true)
|
139
139
|
container.logs("nginx", stdout: true, follow: true)
|
140
140
|
|
@@ -297,6 +297,37 @@ node.update("node-id", {version: "version"}, {Role: "manager", Availability: "ac
|
|
297
297
|
node.delete("node-id")
|
298
298
|
```
|
299
299
|
|
300
|
+
### Service
|
301
|
+
```ruby
|
302
|
+
# Connect to local service endpoints
|
303
|
+
service = Docker::API::Service.new
|
304
|
+
|
305
|
+
# List services
|
306
|
+
service.list
|
307
|
+
|
308
|
+
# Create a service
|
309
|
+
service.create({Name: "nginx-service",
|
310
|
+
TaskTemplate: {ContainerSpec: { Image: "nginx:alpine" }},
|
311
|
+
Mode: { Replicated: { Replicas: 2 } },
|
312
|
+
EndpointSpec: { Ports: [ {Protocol: "tcp", PublishedPort: 80, TargetPort: 80} ] }
|
313
|
+
})
|
314
|
+
|
315
|
+
# Update a service (needs version and current Spec)
|
316
|
+
version = service.details( service ).json["Version"]["Index"]
|
317
|
+
spec = service.details(service).json["Spec"]
|
318
|
+
service.update("nginx-service", {version: version}, spec.merge!({ Mode: { Replicated: { Replicas: 1 } } }))
|
319
|
+
|
320
|
+
# View service logs
|
321
|
+
service.logs("nginx-service", stdout: true)
|
322
|
+
|
323
|
+
# Inspect service
|
324
|
+
service.details("nginx-service")
|
325
|
+
|
326
|
+
# Delete service
|
327
|
+
service.delete("nginx-service")
|
328
|
+
|
329
|
+
```
|
330
|
+
|
300
331
|
### Connection
|
301
332
|
|
302
333
|
By default Docker::API::Connection will connect to local Docker socket at `/var/run/docker.sock`. See examples below to use a different path or connect to a remote address.
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Docker
|
2
|
+
module API
|
3
|
+
class Service < Docker::API::Base
|
4
|
+
|
5
|
+
def list params = {}
|
6
|
+
validate Docker::API::InvalidParameter, [:filters], params
|
7
|
+
@connection.get(build_path("/services", params))
|
8
|
+
end
|
9
|
+
|
10
|
+
def create body = {}, authentication = {}
|
11
|
+
validate Docker::API::InvalidRequestBody, [:Name, :Labels, :TaskTemplate, :Mode, :UpdateConfig, :RollbackConfig, :Networks, :EndpointSpec], body
|
12
|
+
headers = {"Content-Type": "application/json"}
|
13
|
+
headers.merge!({"X-Registry-Auth" => Base64.urlsafe_encode64(authentication.to_json.to_s)}) if authentication.keys.size > 0
|
14
|
+
@connection.request(method: :post, path: "/services/create", headers: headers, body: body.to_json)
|
15
|
+
end
|
16
|
+
|
17
|
+
def update name, params = {}, body = {}, authentication = {}
|
18
|
+
# view https://github.com/docker/swarmkit/issues/1394#issuecomment-240850719
|
19
|
+
validate Docker::API::InvalidParameter, [:version, :registryAuthFrom, :rollback], params
|
20
|
+
validate Docker::API::InvalidRequestBody, [:Name, :Labels, :TaskTemplate, :Mode, :UpdateConfig, :RollbackConfig, :Networks, :EndpointSpec], body
|
21
|
+
headers = {"Content-Type": "application/json"}
|
22
|
+
headers.merge!({"X-Registry-Auth" => Base64.urlsafe_encode64(authentication.to_json.to_s)}) if authentication.keys.size > 0
|
23
|
+
@connection.request(method: :post, path: build_path("/services/#{name}/update", params), headers: headers, body: body.to_json)
|
24
|
+
end
|
25
|
+
|
26
|
+
def details name, params = {}
|
27
|
+
validate Docker::API::InvalidParameter, [:insertDefaults], params
|
28
|
+
@connection.get(build_path("/services/#{name}", params))
|
29
|
+
end
|
30
|
+
|
31
|
+
def logs name, params = {}
|
32
|
+
validate Docker::API::InvalidParameter, [:details, :follow, :stdout, :stderr, :since, :timestamps, :tail], params
|
33
|
+
@connection.get(build_path("/services/#{name}/logs", params))
|
34
|
+
end
|
35
|
+
|
36
|
+
def delete name
|
37
|
+
@connection.delete("/services/#{name}")
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
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.10.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-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -52,6 +52,7 @@ files:
|
|
52
52
|
- lib/docker/api/network.rb
|
53
53
|
- lib/docker/api/node.rb
|
54
54
|
- lib/docker/api/response.rb
|
55
|
+
- lib/docker/api/service.rb
|
55
56
|
- lib/docker/api/swarm.rb
|
56
57
|
- lib/docker/api/system.rb
|
57
58
|
- lib/docker/api/version.rb
|