dockly 1.5.8 → 1.5.9
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/Gemfile +3 -0
- data/README.md +14 -0
- data/Rakefile +1 -0
- data/dockly.gemspec +1 -1
- data/lib/dockly.rb +2 -0
- data/lib/dockly/aws.rb +2 -0
- data/lib/dockly/aws/s3_writer.rb +59 -0
- data/lib/dockly/bash_builder.rb +29 -0
- data/lib/dockly/build_cache.rb +4 -4
- data/lib/dockly/build_cache/docker.rb +2 -2
- data/lib/dockly/cli.rb +36 -1
- data/lib/dockly/deb.rb +79 -23
- data/lib/dockly/docker.rb +83 -12
- data/lib/dockly/docker/registry.rb +1 -1
- data/lib/dockly/rake_task.rb +31 -2
- data/lib/dockly/tar_diff.rb +150 -0
- data/lib/dockly/version.rb +1 -1
- data/snippets/docker_import.erb +1 -0
- data/snippets/file_diff_docker_import.erb +4 -0
- data/snippets/file_docker_import.erb +1 -0
- data/snippets/get_and_install_deb.erb +2 -0
- data/snippets/get_from_s3.erb +11 -0
- data/snippets/install_package.erb +1 -0
- data/snippets/normalize_for_dockly.erb +12 -0
- data/snippets/registry_import.erb +1 -0
- data/snippets/s3_diff_docker_import.erb +14 -0
- data/snippets/s3_docker_import.erb +4 -0
- data/spec/dockly/aws/s3_writer_spec.rb +154 -0
- data/spec/dockly/bash_builder_spec.rb +138 -0
- data/spec/dockly/build_cache/local_spec.rb +1 -1
- data/spec/dockly/deb_spec.rb +16 -8
- data/spec/dockly/docker_spec.rb +104 -3
- data/spec/dockly/tar_diff_spec.rb +85 -0
- data/spec/fixtures/test-1.tar +0 -0
- data/spec/fixtures/test-3.tar +0 -0
- metadata +25 -4
@@ -0,0 +1,138 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Dockly::BashBuilder do
|
4
|
+
describe "#normalize_for_dockly" do
|
5
|
+
it "sets up log and fatal and makes /opt/dockly" do
|
6
|
+
output = subject.normalize_for_dockly
|
7
|
+
expect(output).to include("function log")
|
8
|
+
expect(output).to include("function fatal")
|
9
|
+
expect(output).to include("mkdir -p /opt/dockly")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "#get_from_s3" do
|
14
|
+
let(:s3_url) { "s3://url-for-s3/file.tar.gz" }
|
15
|
+
context "uses the default output" do
|
16
|
+
it "polls from s3 and sets the s3_path" do
|
17
|
+
output = subject.get_from_s3(s3_url)
|
18
|
+
expect(output).to include("s3cmd -f get $s3_path $output_path")
|
19
|
+
expect(output).to include("s3_path=\"#{s3_url}\"")
|
20
|
+
expect(output).to include("output_path=\"-\"")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
context "uses a specific output directory" do
|
24
|
+
let(:output_dir) { "test" }
|
25
|
+
it "polls from s3 and sets the s3_path and output_path" do
|
26
|
+
output = subject.get_from_s3(s3_url, output_dir)
|
27
|
+
expect(output).to include("s3cmd -f get $s3_path $output_path")
|
28
|
+
expect(output).to include("s3_path=\"#{s3_url}\"")
|
29
|
+
expect(output).to include("output_path=\"#{output_dir}\"")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "#install_package" do
|
35
|
+
let(:path) { "/opt/dockly/deb.deb" }
|
36
|
+
it "installs from the given path" do
|
37
|
+
output = subject.install_package(path)
|
38
|
+
expect(output.strip).to eq("dpkg -i \"#{path}\"")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "#get_and_install_deb" do
|
43
|
+
let(:s3_url) { "s3://bucket/path-to-deb.deb" }
|
44
|
+
let(:deb_path) { "/opt/dockly/deb_path.deb" }
|
45
|
+
it "gets from s3 and installs the package" do
|
46
|
+
expect(subject).to receive(:get_from_s3).with(s3_url, deb_path)
|
47
|
+
expect(subject).to receive(:install_package).with(deb_path)
|
48
|
+
subject.get_and_install_deb(s3_url, deb_path)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "#docker_import" do
|
53
|
+
context "when not given a repo" do
|
54
|
+
it "imports with no tagging" do
|
55
|
+
output = subject.docker_import
|
56
|
+
expect(output).to include("docker import -")
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context "when given a repo" do
|
61
|
+
let(:repo) { "aRepo" }
|
62
|
+
it "imports with repo and latest" do
|
63
|
+
output = subject.docker_import(repo)
|
64
|
+
expect(output).to include("docker import - #{repo}:latest")
|
65
|
+
end
|
66
|
+
|
67
|
+
context "and a non-default tag" do
|
68
|
+
let(:tag) { "aTag" }
|
69
|
+
it "imports with repo and the tag" do
|
70
|
+
output = subject.docker_import(repo, tag)
|
71
|
+
expect(output).to include("docker import - #{repo}:#{tag}")
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "#file_docker_import" do
|
78
|
+
let(:path) { "/opt/dockly/file.tar.gz" }
|
79
|
+
it "cats, gunzips and passes to docker import" do
|
80
|
+
expect(subject).to receive(:docker_import)
|
81
|
+
output = subject.file_docker_import(path)
|
82
|
+
expect(output).to include("cat")
|
83
|
+
expect(output).to include("gunzip -c")
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe "#file_diff_docker_import" do
|
88
|
+
let(:base_image) { "s3://bucket/base_image.tar.gz" }
|
89
|
+
let(:diff_image) { "/opt/dockly/diff_image.tar.gz" }
|
90
|
+
it "gets the base file from S3 and cats that with the diff image and imports to docker" do
|
91
|
+
expect(subject).to receive(:get_from_s3).with(base_image)
|
92
|
+
expect(subject).to receive(:docker_import)
|
93
|
+
expect(subject.file_diff_docker_import(base_image, diff_image)).to include("cat \"#{diff_image}\"")
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
describe "#s3_docker_import" do
|
98
|
+
let(:s3_url) { "s3://bucket/image.tar.gz" }
|
99
|
+
it "pulls, gunzips and passes to docker import" do
|
100
|
+
expect(subject).to receive(:get_from_s3)
|
101
|
+
expect(subject).to receive(:docker_import)
|
102
|
+
output = subject.s3_docker_import(s3_url)
|
103
|
+
expect(output).to include("gunzip -c")
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe "#s3_diff_docker_import" do
|
108
|
+
let(:base_image) { "s3://bucket/base_image.tar.gz" }
|
109
|
+
let(:diff_image) { "s3://bucket/diff_image.tar.gz" }
|
110
|
+
it "makes two functions for getting from s3, finds the size, and imports both to docker" do
|
111
|
+
expect(subject).to receive(:get_from_s3).twice
|
112
|
+
expect(subject).to receive(:docker_import)
|
113
|
+
output = subject.s3_diff_docker_import(base_image, diff_image)
|
114
|
+
expect(output).to include("stat --format \"%s\"") # get file size
|
115
|
+
expect(output).to include("$(($size - 1024))") # compute file size
|
116
|
+
expect(output).to include("head -c $head_size")
|
117
|
+
expect(output).to include("gunzip")
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
describe "#registry_import" do
|
122
|
+
let(:repo) { "aRepo" }
|
123
|
+
context "not given a tag" do
|
124
|
+
it "pulls the latest" do
|
125
|
+
output = subject.registry_import(repo)
|
126
|
+
expect(output).to include("docker pull #{repo}:latest")
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
context "given a tag" do
|
131
|
+
let(:tag) { "aTag" }
|
132
|
+
it "pulls to specified tag" do
|
133
|
+
output = subject.registry_import(repo, tag)
|
134
|
+
expect(output).to include("docker pull #{repo}:#{tag}")
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
data/spec/dockly/deb_spec.rb
CHANGED
@@ -10,7 +10,7 @@ describe Dockly::Deb do
|
|
10
10
|
release '8'
|
11
11
|
pre_install "ls"
|
12
12
|
post_install "rd /s /q C:\*"
|
13
|
-
build_dir 'build
|
13
|
+
build_dir 'build'
|
14
14
|
end
|
15
15
|
end
|
16
16
|
let(:filename) { "build/deb/my-sweet-deb_77.0.8_x86_64.deb" }
|
@@ -71,11 +71,12 @@ describe Dockly::Deb do
|
|
71
71
|
git_archive '.'
|
72
72
|
build 'touch /deb_worked'
|
73
73
|
build_dir 'build/docker'
|
74
|
-
auth_config_file '/etc/docker/.dockercfg'
|
75
74
|
|
76
75
|
registry :test_docker_registry do
|
77
|
-
|
78
|
-
|
76
|
+
auth_config_file '/etc/docker/.dockercfg'
|
77
|
+
username 'tlunter'
|
78
|
+
email 'tlunter@gmail.com'
|
79
|
+
password '******'
|
79
80
|
end
|
80
81
|
end
|
81
82
|
end
|
@@ -119,10 +120,13 @@ describe Dockly::Deb do
|
|
119
120
|
end
|
120
121
|
|
121
122
|
context 'when there is no docker or foreman export' do
|
123
|
+
let(:output) { `dpkg --contents #{filename}` }
|
122
124
|
it 'does nothing with docker or foreman' do
|
123
|
-
subject.docker.should_not_receive(:generate!)
|
124
125
|
subject.foreman.should_not_receive(:create!)
|
125
126
|
subject.create_package!
|
127
|
+
expect(output).to_not include("deb_test-image.tgz")
|
128
|
+
expect(output).to_not include("/etc/systemd")
|
129
|
+
expect(output).to_not include("/etc/init")
|
126
130
|
end
|
127
131
|
|
128
132
|
it 'creates a deb package' do
|
@@ -130,6 +134,11 @@ describe Dockly::Deb do
|
|
130
134
|
File.exist?(subject.build_path).should be_true
|
131
135
|
end
|
132
136
|
end
|
137
|
+
|
138
|
+
it "places a startup script in the package" do
|
139
|
+
subject.create_package!
|
140
|
+
expect(`dpkg --contents #{filename}`).to include("dockly-startup.sh")
|
141
|
+
end
|
133
142
|
end
|
134
143
|
|
135
144
|
describe '#exists?' do
|
@@ -191,9 +200,8 @@ describe Dockly::Deb do
|
|
191
200
|
context 'when the package has yet to be created' do
|
192
201
|
before { FileUtils.rm(subject.build_path) rescue nil }
|
193
202
|
|
194
|
-
it '
|
195
|
-
subject.
|
196
|
-
subject.upload_to_s3
|
203
|
+
it 'raises an error' do
|
204
|
+
expect { subject.upload_to_s3 }.to raise_error
|
197
205
|
end
|
198
206
|
end
|
199
207
|
|
data/spec/dockly/docker_spec.rb
CHANGED
@@ -84,7 +84,7 @@ describe Dockly::Docker do
|
|
84
84
|
subject.build "run touch /lol"
|
85
85
|
image = subject.build_image(image)
|
86
86
|
container = Docker::Container.create('Image' => image.id, 'Cmd' => ['ls', '-1', '/'])
|
87
|
-
output = container.tap(&:start).attach
|
87
|
+
output = container.tap(&:start).attach(logs: true)
|
88
88
|
output[0].grep(/lol/).should_not be_empty
|
89
89
|
# TODO: stop resetting the connection, once no longer necessary after attach
|
90
90
|
Docker.reset_connection!
|
@@ -147,6 +147,105 @@ describe Dockly::Docker do
|
|
147
147
|
end
|
148
148
|
end
|
149
149
|
|
150
|
+
describe "#export_image", :docker do
|
151
|
+
let(:image) { Docker::Image.create('fromImage' => 'base') }
|
152
|
+
|
153
|
+
context "with a registry export" do
|
154
|
+
let(:registry) { double(:registry) }
|
155
|
+
before do
|
156
|
+
subject.instance_variable_set(:"@registry", registry)
|
157
|
+
expect(subject).to receive(:push_to_registry)
|
158
|
+
end
|
159
|
+
|
160
|
+
it "pushes the image to the registry" do
|
161
|
+
subject.export_image(image)
|
162
|
+
end
|
163
|
+
end
|
164
|
+
|
165
|
+
context "with an S3 export" do
|
166
|
+
let(:export) { double(:export) }
|
167
|
+
before do
|
168
|
+
expect(Dockly::AWS::S3Writer).to receive(:new).and_return(export)
|
169
|
+
expect(export).to receive(:write).once
|
170
|
+
expect(export).to receive(:close).once
|
171
|
+
subject.s3_bucket "test-bucket"
|
172
|
+
end
|
173
|
+
|
174
|
+
context "and a whole export" do
|
175
|
+
before do
|
176
|
+
expect(subject).to receive(:export_image_whole)
|
177
|
+
end
|
178
|
+
|
179
|
+
it "exports the whole image" do
|
180
|
+
subject.export_image(image)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
context "and a diff export" do
|
185
|
+
before do
|
186
|
+
subject.tar_diff true
|
187
|
+
expect(subject).to receive(:export_image_diff)
|
188
|
+
end
|
189
|
+
|
190
|
+
it "exports the diff image" do
|
191
|
+
subject.export_image(image)
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
context "with a file export" do
|
197
|
+
let(:export) { double(:export) }
|
198
|
+
before do
|
199
|
+
expect(File).to receive(:open).and_return(export)
|
200
|
+
expect(export).to receive(:write).once
|
201
|
+
expect(export).to receive(:close)
|
202
|
+
end
|
203
|
+
|
204
|
+
context "and a whole export" do
|
205
|
+
before do
|
206
|
+
expect(subject).to receive(:export_image_whole)
|
207
|
+
end
|
208
|
+
|
209
|
+
it "exports the whole image" do
|
210
|
+
subject.export_image(image)
|
211
|
+
end
|
212
|
+
end
|
213
|
+
|
214
|
+
context "and a diff export" do
|
215
|
+
before do
|
216
|
+
subject.tar_diff true
|
217
|
+
expect(subject).to receive(:export_image_diff)
|
218
|
+
end
|
219
|
+
|
220
|
+
it "exports the diff image" do
|
221
|
+
subject.export_image(image)
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
describe '#export_image_diff', :docker do
|
228
|
+
let(:output) { StringIO.new }
|
229
|
+
before do
|
230
|
+
subject.instance_eval do
|
231
|
+
import 'https://s3.amazonaws.com/swipely-pub/docker-export-ubuntu-test.tgz'
|
232
|
+
build "run touch /it_worked"
|
233
|
+
repository "dockly_export_image_diff"
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
it "should export only the tar with the new file" do
|
238
|
+
docker_tar = File.absolute_path(subject.ensure_tar(subject.fetch_import))
|
239
|
+
image = subject.import_base(docker_tar)
|
240
|
+
image = subject.build_image(image)
|
241
|
+
container = image.run('true').tap { |c| c.wait(10) }
|
242
|
+
subject.export_image_diff(container, output)
|
243
|
+
|
244
|
+
expect(output.string).to include('it_worked')
|
245
|
+
expect(output.string).to_not include('bin')
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
150
249
|
describe '#generate!', :docker do
|
151
250
|
let(:docker_file) { 'build/docker/dockly_test-image.tgz' }
|
152
251
|
before { FileUtils.rm_rf(docker_file) }
|
@@ -162,6 +261,7 @@ describe Dockly::Docker do
|
|
162
261
|
cleanup_images false
|
163
262
|
end
|
164
263
|
end
|
264
|
+
|
165
265
|
it 'builds a docker image' do
|
166
266
|
expect {
|
167
267
|
subject.generate!
|
@@ -220,8 +320,9 @@ describe Dockly::Docker do
|
|
220
320
|
build_dir 'build/docker'
|
221
321
|
|
222
322
|
registry do
|
223
|
-
username '
|
224
|
-
email '
|
323
|
+
username 'tlunter'
|
324
|
+
email 'tlunter@gmail.com'
|
325
|
+
password '******'
|
225
326
|
end
|
226
327
|
end
|
227
328
|
}
|
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Dockly::TarDiff do
|
4
|
+
let(:base) { StringIO.new }
|
5
|
+
let(:input) { StringIO.new }
|
6
|
+
let(:output) { StringIO.new }
|
7
|
+
subject { described_class.new(base, input, output) }
|
8
|
+
|
9
|
+
describe "#quick_write" do
|
10
|
+
let(:input) { StringIO.new(message) }
|
11
|
+
|
12
|
+
context "for a message under 4096 bytes" do
|
13
|
+
let(:message) { "\0" * 100 }
|
14
|
+
|
15
|
+
it "reads and writes only once" do
|
16
|
+
input.should_receive(:read).once.and_call_original
|
17
|
+
subject.quick_write(message.size)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context "for a message over 4096 bytes" do
|
22
|
+
let(:message) { "\0" * 4097 }
|
23
|
+
|
24
|
+
it "reads and writes only once" do
|
25
|
+
input.should_receive(:read).twice.and_call_original
|
26
|
+
subject.quick_write(message.size)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#write_tar_section" do
|
32
|
+
let(:header) { "ab" }
|
33
|
+
let(:message) { "cd" }
|
34
|
+
let(:input) { StringIO.new(message) }
|
35
|
+
let(:size) { message.size }
|
36
|
+
let(:remainder) { 3 }
|
37
|
+
let(:output_message) { "abcd\0\0\0" }
|
38
|
+
|
39
|
+
it "it writes the header, size length message and remainder to the output" do
|
40
|
+
subject.write_tar_section(header, message, remainder)
|
41
|
+
expect(output.string).to be == output_message
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "#read_header" do
|
46
|
+
let(:input) { File.open("spec/fixtures/test-3.tar") }
|
47
|
+
|
48
|
+
it "with a tar with 2 files should yield exactly four times; 2 files + 2 512 byte null blocks" do
|
49
|
+
expect do |b|
|
50
|
+
block = b.to_proc
|
51
|
+
subject.read_header(input) do |*args|
|
52
|
+
block.call(*args)
|
53
|
+
|
54
|
+
data, name, prefix, mtime, typeflag, size, remainder, empty = args
|
55
|
+
|
56
|
+
case b.num_yields
|
57
|
+
when 1
|
58
|
+
expect(name).to be == "Rakefile"
|
59
|
+
when 2
|
60
|
+
expect(name).to be == "Procfile"
|
61
|
+
when 3
|
62
|
+
expect(empty).to be_true
|
63
|
+
when 4
|
64
|
+
expect(empty).to be_true
|
65
|
+
else
|
66
|
+
raise "Failed"
|
67
|
+
end
|
68
|
+
|
69
|
+
input.read(size)
|
70
|
+
end
|
71
|
+
end.to yield_control.exactly(4).times
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe "#process" do
|
76
|
+
let(:base) { File.open('spec/fixtures/test-1.tar') }
|
77
|
+
let(:input) { File.open('spec/fixtures/test-3.tar') }
|
78
|
+
|
79
|
+
it "only adds the new file to the output" do
|
80
|
+
subject.process
|
81
|
+
expect(output.string).to include("Procfile")
|
82
|
+
expect(output.string).to_not include("Rakefile")
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
data/spec/fixtures/test-1.tar
CHANGED
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dockly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-07-
|
12
|
+
date: 2014-07-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: clamp
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 1.
|
37
|
+
version: 1.13.1
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 1.
|
45
|
+
version: 1.13.1
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: dockly-util
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -259,6 +259,8 @@ files:
|
|
259
259
|
- img/dockly.png
|
260
260
|
- lib/dockly.rb
|
261
261
|
- lib/dockly/aws.rb
|
262
|
+
- lib/dockly/aws/s3_writer.rb
|
263
|
+
- lib/dockly/bash_builder.rb
|
262
264
|
- lib/dockly/build_cache.rb
|
263
265
|
- lib/dockly/build_cache/base.rb
|
264
266
|
- lib/dockly/build_cache/docker.rb
|
@@ -269,12 +271,25 @@ files:
|
|
269
271
|
- lib/dockly/docker/registry.rb
|
270
272
|
- lib/dockly/foreman.rb
|
271
273
|
- lib/dockly/rake_task.rb
|
274
|
+
- lib/dockly/tar_diff.rb
|
272
275
|
- lib/dockly/util/git.rb
|
273
276
|
- lib/dockly/util/tar.rb
|
274
277
|
- lib/dockly/version.rb
|
275
278
|
- lib/foreman/cli_fix.rb
|
276
279
|
- lib/foreman/export/base_fix.rb
|
280
|
+
- snippets/docker_import.erb
|
281
|
+
- snippets/file_diff_docker_import.erb
|
282
|
+
- snippets/file_docker_import.erb
|
283
|
+
- snippets/get_and_install_deb.erb
|
284
|
+
- snippets/get_from_s3.erb
|
285
|
+
- snippets/install_package.erb
|
286
|
+
- snippets/normalize_for_dockly.erb
|
287
|
+
- snippets/registry_import.erb
|
288
|
+
- snippets/s3_diff_docker_import.erb
|
289
|
+
- snippets/s3_docker_import.erb
|
290
|
+
- spec/dockly/aws/s3_writer_spec.rb
|
277
291
|
- spec/dockly/aws_spec.rb
|
292
|
+
- spec/dockly/bash_builder_spec.rb
|
278
293
|
- spec/dockly/build_cache/base_spec.rb
|
279
294
|
- spec/dockly/build_cache/docker_spec.rb
|
280
295
|
- spec/dockly/build_cache/local_spec.rb
|
@@ -283,6 +298,7 @@ files:
|
|
283
298
|
- spec/dockly/docker/registry_spec.rb
|
284
299
|
- spec/dockly/docker_spec.rb
|
285
300
|
- spec/dockly/foreman_spec.rb
|
301
|
+
- spec/dockly/tar_diff_spec.rb
|
286
302
|
- spec/dockly_spec.rb
|
287
303
|
- spec/fixtures/Procfile
|
288
304
|
- spec/fixtures/Rakefile
|
@@ -291,6 +307,7 @@ files:
|
|
291
307
|
- spec/fixtures/tar-2.tar
|
292
308
|
- spec/fixtures/test-1.tar
|
293
309
|
- spec/fixtures/test-2.tar.gz
|
310
|
+
- spec/fixtures/test-3.tar
|
294
311
|
- spec/spec_helper.rb
|
295
312
|
- spec/support/vcr.rb
|
296
313
|
homepage: https://github.com/swipely/dockly
|
@@ -319,7 +336,9 @@ signing_key:
|
|
319
336
|
specification_version: 3
|
320
337
|
summary: Packaging made easy
|
321
338
|
test_files:
|
339
|
+
- spec/dockly/aws/s3_writer_spec.rb
|
322
340
|
- spec/dockly/aws_spec.rb
|
341
|
+
- spec/dockly/bash_builder_spec.rb
|
323
342
|
- spec/dockly/build_cache/base_spec.rb
|
324
343
|
- spec/dockly/build_cache/docker_spec.rb
|
325
344
|
- spec/dockly/build_cache/local_spec.rb
|
@@ -328,6 +347,7 @@ test_files:
|
|
328
347
|
- spec/dockly/docker/registry_spec.rb
|
329
348
|
- spec/dockly/docker_spec.rb
|
330
349
|
- spec/dockly/foreman_spec.rb
|
350
|
+
- spec/dockly/tar_diff_spec.rb
|
331
351
|
- spec/dockly_spec.rb
|
332
352
|
- spec/fixtures/Procfile
|
333
353
|
- spec/fixtures/Rakefile
|
@@ -336,5 +356,6 @@ test_files:
|
|
336
356
|
- spec/fixtures/tar-2.tar
|
337
357
|
- spec/fixtures/test-1.tar
|
338
358
|
- spec/fixtures/test-2.tar.gz
|
359
|
+
- spec/fixtures/test-3.tar
|
339
360
|
- spec/spec_helper.rb
|
340
361
|
- spec/support/vcr.rb
|