dockerploy 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- N2YyODBjNmEwZGZhMmY5MDZjNDMyZGUxZGQ0MmVkYmY0M2I0YWJlZg==
4
+ NGFjZGYwZmU4ZDE1MTMzYWI1MTg3MzkzOWZmOTUxMzRkNDQ0ZWE1NQ==
5
5
  data.tar.gz: !binary |-
6
- NDYyMTM0MDVlZGJkNTA2OTA4YTk2YzZiMmRkMmEzMzdmMTVjYjk4Mg==
6
+ NTZmMThhYTUxZjMyYTRjNTMzODAwZDk2YTIzNzExMTFmNWJlMWM5ZA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- N2ZmMGM1YTg5MjBmMWEzYzQxNzdhOGUzZjE5YmQ1ODBmMjYzNmIwZGQzMjYz
10
- Mjg0MTM2OWRkODA5ZWE1OWJjMzkxZGQwNjJmMDBmMTdiMjBiMGNlMWY0OTdi
11
- NWVjYWUyMTA4YTEzMTlmYjI4YTg3N2E3NjI1MzhiNjE2YWZiOWE=
9
+ YTI3YjJlN2U1YTNjMzFlMTkyNmUwYjQ1Yzg2NzVlODY1MTg4OGI4ODVlY2I1
10
+ MzRjMmE2NTIwMjgyNmE0YWFkYjk3ODZkY2EzMTM1NTk5NzUwYTUxMWYyMmYy
11
+ ZDg2ZGIzYzVmMGRiMzE1ODMxNTAwYzZhM2MyZTAxNDgxNWQxZTU=
12
12
  data.tar.gz: !binary |-
13
- Njc1YjZiNTRkYjNmNzg1YzVjODYyZDY2ODBkNDlhNTEwMTJjOTkzMzc3NDkx
14
- MGVjZDA3ODY2NDk1NDdkNzcxMjJkNjgyZTQ4NGUzZDZkODM4ZmU5ZGE1NzRm
15
- MjAyN2E3MTIwMThjMjk2NjQ3ZGM3OGE5Zjc5ODE2YTNkM2UwOGM=
13
+ MmM3NzIzNWMwYmRmMjVlMGM2Y2U5YmU1NmM5YTI1NmEyODYwNGY4OWVlOGQ2
14
+ ZjBkNzE5YTIxY2U4ZDI5M2UxZWNmNzdiYjQxODg3NzNlMmEzMGRlYTMwODVm
15
+ MTBlNDljYWVmNGFkMzViOGIwMjY1ZTJiMWU3NGY2OGY3ZGNhNTY=
data/README.md CHANGED
@@ -7,7 +7,11 @@ Deploy dockerized an application
7
7
 
8
8
  Add this line to your application's Gemfile:
9
9
 
10
- gem 'dockerploy'
10
+ ```ruby
11
+ group :development do
12
+ gem 'dockerploy'
13
+ end
14
+ ```
11
15
 
12
16
  And then execute:
13
17
 
@@ -17,6 +21,47 @@ Or install it yourself as:
17
21
 
18
22
  $ gem install dockerploy
19
23
 
24
+ Generate an empty docker/config.yml with:
25
+
26
+ $ bundle exec dockerploy init
27
+
28
+ ## Configuration
29
+ In docker/config.yml.
30
+
31
+ image_name: <Docker image name>
32
+ docker_username: <Docker registry server username>
33
+ docker_host: <Docker server for building>
34
+ application_name: <application name>
35
+ staging: # Environment name
36
+ env_file: docker/environments/staging.yml # Environment variable file path
37
+ tag: v1.0.7 # <Image tag>
38
+ hooks:
39
+ before_deploy:
40
+ - local:
41
+ - <Command to run in local machine>
42
+ - remote:
43
+ - <Command to run in remove machine(host server)>
44
+ after_deploy:
45
+ - local:
46
+ - <Command to run in local machine>
47
+ - remote:
48
+ - <Command to run in remove machine(host server)>
49
+ volumes:
50
+ - volume:
51
+ host: <Folder from the host>
52
+ guest: <Folder to the container>
53
+ servers:
54
+ - host: <Docker server>
55
+ username: <Server username>
56
+ password: <Server password>
57
+ port: <Server SSH port>
58
+ custom_variables:
59
+ role: <Server SSH port>
60
+ container:
61
+ host: <Container host>
62
+ ssh_port: <Container ssh port for mapping>
63
+ http_port: <Container http port for mapping>
64
+
20
65
  ## Usage
21
66
  To build an image
22
67
 
@@ -42,6 +42,11 @@ module Dockerploy
42
42
  options[@env][:tagging]
43
43
  end
44
44
 
45
+ def image_tag
46
+ raise NoEnvError if @env.nil?
47
+ options[@env][:image_tag]
48
+ end
49
+
45
50
  def before_all_hooks
46
51
  return {} if options[:hooks].nil? || options[:hooks][:before_deploy].nil?
47
52
  options[:hooks][:before_deploy]
@@ -112,7 +112,8 @@ module Dockerploy
112
112
  end
113
113
 
114
114
  def image_name
115
- @options[:tag] ? sprintf('%s:%s', @config.image_name, @options[:tag]) : @config.image_name
115
+ tag = @options[:tag] || @config.image_tag
116
+ tag ? sprintf('%s:%s', @config.image_name, tag) : @config.image_name
116
117
  end
117
118
  end
118
119
  end
@@ -1,4 +1,4 @@
1
1
  module Dockerploy
2
2
  # Version of Dockerploy
3
- VERSION = '0.0.4'
3
+ VERSION = '0.0.5'
4
4
  end
@@ -0,0 +1,17 @@
1
+ image_name: docker/image
2
+ docker_username: dockeruser
3
+ docker_host: tcp://test.host:4243
4
+ application_name: app
5
+ test:
6
+ branch: test-branch
7
+ image_tag: v1.0.1
8
+ servers:
9
+ - host: server.host
10
+ username: server_user
11
+ password: server_pass
12
+ port: 2000
13
+ role: server_role
14
+ container:
15
+ host: container.host
16
+ ssh_port: 1022
17
+ http_port: 8080
@@ -143,6 +143,19 @@ docker run -d --name app_8080 --hostname app -p container.host:1022:22 -p contai
143
143
  subject.deploy
144
144
  end
145
145
  end
146
+
147
+ context 'with image_tag' do
148
+ let(:fixture_path) { 'spec/fixtures/config_with_image_tag.yml' }
149
+
150
+ it 'creates a container with image tag' do
151
+ expected_command = <<-SHELL
152
+ docker run -d --name app_8080 --hostname app -p container.host:1022:22 -p container.host:8080:80 docker/image:v1.0.1
153
+ SHELL
154
+ expected_command.chomp!
155
+ expect(ssh_client).to receive(:command).with(expected_command).ordered
156
+ subject.deploy
157
+ end
158
+ end
146
159
  end
147
160
  end
148
161
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dockerploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sunjin Lee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-25 00:00:00.000000000 Z
11
+ date: 2015-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -144,6 +144,7 @@ files:
144
144
  - spec/fixtures/config_with_env_file.yml
145
145
  - spec/fixtures/config_with_hooks.yml
146
146
  - spec/fixtures/config_with_hooks_for_each_env.yml
147
+ - spec/fixtures/config_with_image_tag.yml
147
148
  - spec/fixtures/config_with_tagging.yml
148
149
  - spec/fixtures/config_with_volumes.yml
149
150
  - spec/fixtures/test.yml
@@ -182,6 +183,7 @@ test_files:
182
183
  - spec/fixtures/config_with_env_file.yml
183
184
  - spec/fixtures/config_with_hooks.yml
184
185
  - spec/fixtures/config_with_hooks_for_each_env.yml
186
+ - spec/fixtures/config_with_image_tag.yml
185
187
  - spec/fixtures/config_with_tagging.yml
186
188
  - spec/fixtures/config_with_volumes.yml
187
189
  - spec/fixtures/test.yml