indocker 0.0.2 → 0.0.5
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +42 -6
- data/bin/indocker +1 -1
- data/indocker.gemspec +4 -0
- data/lib/indocker/application_initializer.rb +1 -12
- data/lib/indocker/cli.rb +10 -0
- data/lib/indocker/configs/config.rb +93 -22
- data/lib/indocker/configs/config_factory.rb +17 -16
- data/lib/indocker/configs/config_initializer.rb +9 -0
- data/lib/indocker/container/container_builder.rb +29 -0
- data/lib/indocker/{directives → container}/container_directives_runner.rb +8 -0
- data/lib/indocker/container/container_dsl.rb +26 -3
- data/lib/indocker/container/container_inspector.rb +26 -0
- data/lib/indocker/container/container_manager.rb +43 -32
- data/lib/indocker/container/container_metadata.rb +31 -26
- data/lib/indocker/container/container_metadata_factory.rb +5 -2
- data/lib/indocker/directives/base.rb +6 -10
- data/lib/indocker/directives/container_directives/base.rb +4 -0
- data/lib/indocker/directives/container_directives/cmd.rb +7 -0
- data/lib/indocker/directives/container_directives/env.rb +7 -0
- data/lib/indocker/directives/container_directives/env_file.rb +3 -3
- data/lib/indocker/directives/container_directives/from.rb +4 -2
- data/lib/indocker/directives/container_directives/ports.rb +11 -4
- data/lib/indocker/directives/container_directives/volume.rb +23 -0
- data/lib/indocker/directives/{docker_directives → image_directives}/base.rb +13 -1
- data/lib/indocker/directives/{docker_directives → image_directives}/cmd.rb +5 -1
- data/lib/indocker/directives/image_directives/copy.rb +32 -0
- data/lib/indocker/directives/{prepare_directives → image_directives}/docker_cp.rb +5 -1
- data/lib/indocker/directives/{docker_directives → image_directives}/entrypoint.rb +5 -1
- data/lib/indocker/directives/image_directives/env.rb +9 -0
- data/lib/indocker/directives/image_directives/env_file.rb +19 -0
- data/lib/indocker/directives/image_directives/expose.rb +9 -0
- data/lib/indocker/directives/image_directives/from.rb +36 -0
- data/lib/indocker/directives/image_directives/registry.rb +30 -0
- data/lib/indocker/directives/image_directives/run.rb +17 -0
- data/lib/indocker/directives/image_directives/workdir.rb +9 -0
- data/lib/indocker/directives/partial.rb +9 -1
- data/lib/indocker/docker_api/container_config.rb +121 -0
- data/lib/indocker/{docker_api.rb → docker_api/docker_api.rb} +79 -52
- data/lib/indocker/dsl_context.rb +4 -0
- data/lib/indocker/envs/env_metadata.rb +4 -0
- data/lib/indocker/errors.rb +5 -1
- data/lib/indocker/git/git_api.rb +32 -0
- data/lib/indocker/git/git_helper.rb +34 -0
- data/lib/indocker/git/git_service.rb +21 -0
- data/lib/indocker/handlers/{run_container.rb → container_run.rb} +4 -13
- data/lib/indocker/handlers/container_stop.rb +17 -0
- data/lib/indocker/handlers/performable.rb +22 -0
- data/lib/indocker/image/image_builder.rb +22 -7
- data/lib/indocker/image/image_dependencies_manager.rb +13 -9
- data/lib/indocker/image/image_directives_runner.rb +99 -0
- data/lib/indocker/image/image_dockerfile_builder.rb +24 -0
- data/lib/indocker/image/image_dsl.rb +38 -18
- data/lib/indocker/image/image_evaluator.rb +1 -1
- data/lib/indocker/image/image_helper.rb +9 -0
- data/lib/indocker/image/image_metadata.rb +9 -9
- data/lib/indocker/image/image_metadata_factory.rb +11 -10
- data/lib/indocker/image/image_metadata_repository.rb +8 -9
- data/lib/indocker/registry/registry_api.rb +46 -0
- data/lib/indocker/registry/registry_helper.rb +20 -0
- data/lib/indocker/registry/registry_service.rb +28 -0
- data/lib/indocker/utils/logger_factory.rb +1 -0
- data/lib/indocker/utils/registry_authenticator.rb +5 -5
- data/lib/indocker/utils/tar_helper.rb +5 -5
- data/lib/indocker/version.rb +1 -1
- data/lib/indocker/volumes/volume_metadata.rb +9 -0
- data/lib/indocker/volumes/volume_metadata_factory.rb +9 -0
- data/lib/indocker/volumes/volume_metadata_repository.rb +34 -0
- data/lib/indocker.rb +56 -27
- data/spec/example/.indocker/config.rb +14 -7
- data/spec/fixtures/spec.env +2 -0
- data/spec/indocker/configs/config_spec.rb +52 -1
- data/spec/indocker/container/container_builder_spec.rb +67 -0
- data/spec/indocker/container/container_manager_spec.rb +177 -129
- data/spec/indocker/docker_api/container_config_spec.rb +64 -0
- data/spec/indocker/{utils → docker_api}/docker_api_spec.rb +38 -13
- data/spec/indocker/handlers/container_run_spec.rb +60 -0
- data/spec/indocker/image/image_builder_spec.rb +64 -26
- data/spec/indocker/image/image_directives_runner_spec.rb +141 -0
- data/spec/indocker/image/image_dockerfile_builder_spec.rb +25 -0
- data/spec/indocker/image/image_evaluator_spec.rb +29 -9
- data/spec/spec_helper.rb +38 -16
- metadata +108 -32
- data/lib/indocker/directives/docker_directives/copy.rb +0 -27
- data/lib/indocker/directives/docker_directives/env.rb +0 -5
- data/lib/indocker/directives/docker_directives/from.rb +0 -30
- data/lib/indocker/directives/docker_directives/run.rb +0 -5
- data/lib/indocker/directives/docker_directives/workdir.rb +0 -5
- data/lib/indocker/directives/image_directives_runner.rb +0 -120
- data/lib/indocker/directives/prepare_directives/base.rb +0 -6
- data/lib/indocker/envs/manager.rb +0 -30
- data/lib/indocker/handlers/base.rb +0 -13
- data/spec/indocker/directives/image_directives_runner_spec.rb +0 -121
- data/spec/indocker/handlers/run_container_spec.rb +0 -107
- data/spec/tmp/indocker_list_container_files/deeper/example3.txt +0 -1
- data/spec/tmp/indocker_list_container_files/deeper/example4.txt +0 -1
- data/spec/tmp/indocker_list_container_files/example1.txt +0 -1
- data/spec/tmp/indocker_list_container_files/example2.txt +0 -1
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe 'Indocker::Handlers::RunContainer' do
|
|
4
|
-
subject { ioc.run_container_handler }
|
|
5
|
-
|
|
6
|
-
describe '#handle' do
|
|
7
|
-
context 'for valid cmd process in container' do
|
|
8
|
-
let(:container) { ioc.container_metadata_repository.get_by_name(:indocker_correct_container) }
|
|
9
|
-
|
|
10
|
-
before do
|
|
11
|
-
Indocker.define_image :indocker_correct_image do
|
|
12
|
-
from 'alpine:latest'
|
|
13
|
-
|
|
14
|
-
cmd ['/bin/sh']
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
Indocker.define_container :indocker_correct_container do
|
|
18
|
-
use images.indocker_correct_image
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
context 'for new container' do
|
|
23
|
-
before do
|
|
24
|
-
subject.handle(name: :indocker_correct_container, current_path: nil)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
it 'creates container' do
|
|
28
|
-
expect(
|
|
29
|
-
ioc.docker_api.container_exists?(:indocker_correct_container)
|
|
30
|
-
).to be true
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it 'runs container' do
|
|
34
|
-
expect(
|
|
35
|
-
ioc.docker_api.get_container_state(:indocker_correct_container)
|
|
36
|
-
).to eq(Indocker::ContainerMetadata::States::RUNNING)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
it 'logs successfull result' do
|
|
40
|
-
expect(
|
|
41
|
-
ioc.logger.messages.last
|
|
42
|
-
).to eq("INFO".colorize(:green) + ": Successfully started container :indocker_correct_container")
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
context 'for existing container' do
|
|
47
|
-
before do
|
|
48
|
-
subject.handle(name: :indocker_correct_container, current_path: nil)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
it 'stops, destroy and create container again' do
|
|
52
|
-
old_container_id = ioc.docker_api.get_container_id(:indocker_correct_container)
|
|
53
|
-
|
|
54
|
-
subject.handle(name: :indocker_correct_container, current_path: nil)
|
|
55
|
-
|
|
56
|
-
new_container_id = ioc.docker_api.get_container_id(:indocker_correct_container)
|
|
57
|
-
|
|
58
|
-
expect(new_container_id).not_to eq(old_container_id)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
it 'runs container again' do
|
|
62
|
-
subject.handle(name: :indocker_correct_container, current_path: nil)
|
|
63
|
-
|
|
64
|
-
expect(
|
|
65
|
-
ioc.docker_api.get_container_state(:indocker_correct_container)
|
|
66
|
-
).to eq(Indocker::ContainerMetadata::States::RUNNING)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
it 'logs successfull result' do
|
|
70
|
-
expect(
|
|
71
|
-
ioc.logger.messages.last
|
|
72
|
-
).to eq("INFO".colorize(:green) + ": Successfully started container :indocker_correct_container")
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
context 'for falling cmd process in container' do
|
|
78
|
-
let(:container) { ioc.container_metadata_repository.get_by_name(:container_with_falling_cmd) }
|
|
79
|
-
|
|
80
|
-
before do
|
|
81
|
-
Indocker.define_image :indocker_image_with_falling_cmd do
|
|
82
|
-
from 'alpine:latest'
|
|
83
|
-
|
|
84
|
-
cmd ['invalid/process']
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
Indocker.define_container :container_with_falling_cmd do
|
|
88
|
-
use images.indocker_image_with_falling_cmd
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
subject.handle(name: :container_with_falling_cmd, current_path: nil)
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
it 'logs error text' do
|
|
95
|
-
expect(
|
|
96
|
-
ioc.logger.messages.last
|
|
97
|
-
).to eq("ERROR".colorize(:red) + ": oci runtime error: container_linux.go:265: starting container process caused \"exec: \\\"invalid/process\\\": stat invalid/process: no such file or directory\"")
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
it 'does not run container' do
|
|
101
|
-
expect(
|
|
102
|
-
ioc.docker_api.get_container_state(:container_with_falling_cmd)
|
|
103
|
-
).to eq(Indocker::ContainerMetadata::States::CREATED)
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
end
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
example3.txt
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
example4.txt
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
example1.txt
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
example2.txt
|