dapp 0.8.0 → 0.9.0
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/bin/dapp +5 -5
- data/config/en/common.yml +6 -4
- data/config/en/net_status.yml +8 -7
- data/lib/dapp.rb +157 -139
- data/lib/dapp/cli.rb +6 -16
- data/lib/dapp/cli/base.rb +3 -5
- data/lib/dapp/config/base.rb +19 -7
- data/lib/dapp/config/directive/base.rb +0 -1
- data/lib/dapp/config/error/config.rb +7 -0
- data/lib/dapp/core_ext/hash.rb +0 -2
- data/lib/dapp/core_ext/pathname.rb +1 -3
- data/lib/dapp/{project.rb → dapp.rb} +2 -21
- data/lib/dapp/{project → dapp}/chef.rb +2 -4
- data/lib/dapp/{project → dapp}/dappfile.rb +5 -7
- data/lib/dapp/{project → dapp}/deps/base.rb +3 -6
- data/lib/dapp/{project → dapp}/deps/gitartifact.rb +2 -5
- data/lib/dapp/{project → dapp}/git_artifact.rb +2 -4
- data/lib/dapp/{project → dapp}/lock.rb +3 -5
- data/lib/dapp/{project → dapp}/logging/base.rb +2 -5
- data/lib/dapp/{project → dapp}/logging/i18n.rb +2 -3
- data/lib/dapp/{project → dapp}/logging/paint.rb +2 -4
- data/lib/dapp/{project → dapp}/logging/process.rb +2 -5
- data/lib/dapp/{project → dapp}/shellout/base.rb +2 -4
- data/lib/dapp/{project → dapp}/shellout/streaming.rb +3 -8
- data/lib/dapp/{project → dapp}/ssh_agent.rb +6 -9
- data/lib/dapp/dimg.rb +1 -192
- data/lib/dapp/dimg/artifact.rb +24 -0
- data/lib/dapp/dimg/build/stage/after_install_artifact.rb +14 -0
- data/lib/dapp/dimg/build/stage/after_setup_artifact.rb +18 -0
- data/lib/dapp/dimg/build/stage/artifact_base.rb +80 -0
- data/lib/dapp/dimg/build/stage/artifact_default.rb +63 -0
- data/lib/dapp/dimg/build/stage/base.rb +210 -0
- data/lib/dapp/dimg/build/stage/before_install.rb +33 -0
- data/lib/dapp/dimg/build/stage/before_install_artifact.rb +14 -0
- data/lib/dapp/dimg/build/stage/before_setup.rb +31 -0
- data/lib/dapp/dimg/build/stage/before_setup_artifact.rb +14 -0
- data/lib/dapp/dimg/build/stage/build_artifact.rb +31 -0
- data/lib/dapp/dimg/build/stage/docker_instructions.rb +25 -0
- data/lib/dapp/dimg/build/stage/from.rb +50 -0
- data/lib/dapp/dimg/build/stage/ga_archive.rb +28 -0
- data/lib/dapp/dimg/build/stage/ga_archive_dependencies.rb +27 -0
- data/lib/dapp/dimg/build/stage/ga_artifact_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/ga_base.rb +80 -0
- data/lib/dapp/dimg/build/stage/ga_dependencies_base.rb +20 -0
- data/lib/dapp/dimg/build/stage/ga_latest_patch.rb +54 -0
- data/lib/dapp/dimg/build/stage/import_artifact.rb +64 -0
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/ga_post_install_patch_dependencies.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/ga_pre_install_patch_dependencies.rb +22 -0
- data/lib/dapp/dimg/build/stage/install/install.rb +35 -0
- data/lib/dapp/dimg/build/stage/mod/group.rb +42 -0
- data/lib/dapp/dimg/build/stage/mod/logging.rb +101 -0
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/setup/ga_post_setup_patch_dependencies.rb +32 -0
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch.rb +22 -0
- data/lib/dapp/dimg/build/stage/setup/ga_pre_setup_patch_dependencies.rb +22 -0
- data/lib/dapp/dimg/build/stage/setup/setup.rb +35 -0
- data/lib/dapp/dimg/builder.rb +6 -0
- data/lib/dapp/{builder → dimg/builder}/base.rb +4 -5
- data/lib/dapp/{builder → dimg/builder}/chef.rb +41 -33
- data/lib/dapp/dimg/builder/chef/berksfile.rb +121 -0
- data/lib/dapp/dimg/builder/chef/cookbook.rb +285 -0
- data/lib/dapp/dimg/builder/chef/cookbook_metadata.rb +106 -0
- data/lib/dapp/{builder → dimg/builder}/none.rb +4 -5
- data/lib/dapp/{builder → dimg/builder}/shell.rb +5 -6
- data/lib/dapp/dimg/cli/base.rb +16 -0
- data/lib/dapp/dimg/cli/bp.rb +37 -0
- data/lib/dapp/dimg/cli/build.rb +64 -0
- data/lib/dapp/dimg/cli/build_context.rb +18 -0
- data/lib/dapp/dimg/cli/build_context/export.rb +26 -0
- data/lib/dapp/dimg/cli/build_context/import.rb +17 -0
- data/lib/dapp/dimg/cli/cleanup.rb +22 -0
- data/lib/dapp/dimg/cli/cli.rb +1 -0
- data/lib/dapp/dimg/cli/dimg.rb +30 -0
- data/lib/dapp/dimg/cli/list.rb +17 -0
- data/lib/dapp/dimg/cli/mrproper.rb +26 -0
- data/lib/dapp/dimg/cli/push.rb +61 -0
- data/lib/dapp/dimg/cli/run.rb +59 -0
- data/lib/dapp/{cli → dimg/cli}/spush.rb +7 -7
- data/lib/dapp/dimg/cli/stage_image.rb +24 -0
- data/lib/dapp/dimg/cli/stages.rb +22 -0
- data/lib/dapp/dimg/cli/stages/cleanup_local.rb +44 -0
- data/lib/dapp/dimg/cli/stages/cleanup_repo.rb +26 -0
- data/lib/dapp/dimg/cli/stages/flush_local.rb +23 -0
- data/lib/dapp/dimg/cli/stages/flush_repo.rb +24 -0
- data/lib/dapp/dimg/cli/stages/pull.rb +28 -0
- data/lib/dapp/dimg/cli/stages/push.rb +24 -0
- data/lib/dapp/dimg/cli/tag.rb +24 -0
- data/lib/dapp/dimg/config/artifact_dimg.rb +17 -0
- data/lib/dapp/dimg/config/artifact_group.rb +47 -0
- data/lib/dapp/dimg/config/base.rb +7 -0
- data/lib/dapp/dimg/config/dimg.rb +24 -0
- data/lib/dapp/dimg/config/dimg/instance_methods.rb +177 -0
- data/lib/dapp/dimg/config/dimg/validation.rb +126 -0
- data/lib/dapp/dimg/config/dimg_group.rb +61 -0
- data/lib/dapp/dimg/config/dimg_group_base.rb +54 -0
- data/lib/dapp/dimg/config/dimg_group_main.rb +22 -0
- data/lib/dapp/dimg/config/directive/artifact.rb +70 -0
- data/lib/dapp/dimg/config/directive/artifact_base.rb +97 -0
- data/lib/dapp/dimg/config/directive/base.rb +9 -0
- data/lib/dapp/dimg/config/directive/chef.rb +68 -0
- data/lib/dapp/dimg/config/directive/docker/artifact.rb +15 -0
- data/lib/dapp/dimg/config/directive/docker/base.rb +22 -0
- data/lib/dapp/dimg/config/directive/docker/dimg.rb +82 -0
- data/lib/dapp/dimg/config/directive/git_artifact_local.rb +47 -0
- data/lib/dapp/dimg/config/directive/git_artifact_remote.rb +58 -0
- data/lib/dapp/dimg/config/directive/mount.rb +27 -0
- data/lib/dapp/dimg/config/directive/shell/artifact.rb +18 -0
- data/lib/dapp/dimg/config/directive/shell/dimg.rb +65 -0
- data/lib/dapp/dimg/dapp/command.rb +21 -0
- data/lib/dapp/dimg/dapp/command/bp.rb +20 -0
- data/lib/dapp/dimg/dapp/command/build.rb +22 -0
- data/lib/dapp/dimg/dapp/command/build_context/common.rb +27 -0
- data/lib/dapp/dimg/dapp/command/build_context/export.rb +55 -0
- data/lib/dapp/dimg/dapp/command/build_context/import.rb +71 -0
- data/lib/dapp/dimg/dapp/command/cleanup.rb +23 -0
- data/lib/dapp/dimg/dapp/command/common.rb +96 -0
- data/lib/dapp/dimg/dapp/command/list.rb +19 -0
- data/lib/dapp/dimg/dapp/command/mrproper.rb +75 -0
- data/lib/dapp/dimg/dapp/command/push.rb +27 -0
- data/lib/dapp/dimg/dapp/command/run.rb +15 -0
- data/lib/dapp/dimg/dapp/command/spush.rb +17 -0
- data/lib/dapp/dimg/dapp/command/stage_image.rb +14 -0
- data/lib/dapp/dimg/dapp/command/stages/cleanup_local.rb +137 -0
- data/lib/dapp/dimg/dapp/command/stages/cleanup_repo.rb +124 -0
- data/lib/dapp/dimg/dapp/command/stages/common.rb +85 -0
- data/lib/dapp/dimg/dapp/command/stages/flush_local.rb +21 -0
- data/lib/dapp/dimg/dapp/command/stages/flush_repo.rb +21 -0
- data/lib/dapp/dimg/dapp/command/stages/pull.rb +26 -0
- data/lib/dapp/dimg/dapp/command/stages/push.rb +22 -0
- data/lib/dapp/dimg/dapp/command/tag.rb +17 -0
- data/lib/dapp/dimg/dimg.rb +192 -0
- data/lib/dapp/dimg/dimg/git_artifact.rb +26 -0
- data/lib/dapp/dimg/dimg/path.rb +37 -0
- data/lib/dapp/dimg/dimg/stages.rb +60 -0
- data/lib/dapp/dimg/dimg/tags.rb +65 -0
- data/lib/dapp/dimg/docker_registry.rb +37 -0
- data/lib/dapp/dimg/docker_registry/base.rb +109 -0
- data/lib/dapp/dimg/docker_registry/base/authorization.rb +63 -0
- data/lib/dapp/dimg/docker_registry/base/request.rb +34 -0
- data/lib/dapp/dimg/docker_registry/default.rb +18 -0
- data/lib/dapp/dimg/error/base.rb +7 -0
- data/lib/dapp/dimg/error/build.rb +7 -0
- data/lib/dapp/dimg/error/chef.rb +11 -0
- data/lib/dapp/dimg/error/command.rb +7 -0
- data/lib/dapp/dimg/error/config.rb +7 -0
- data/lib/dapp/dimg/error/dimg.rb +7 -0
- data/lib/dapp/dimg/error/lock.rb +7 -0
- data/lib/dapp/dimg/error/registry.rb +7 -0
- data/lib/dapp/dimg/error/rugged.rb +7 -0
- data/lib/dapp/dimg/error/shellout.rb +7 -0
- data/lib/dapp/dimg/error/tar_writer.rb +7 -0
- data/lib/dapp/dimg/exception/base.rb +7 -0
- data/lib/dapp/dimg/exception/introspect_image.rb +7 -0
- data/lib/dapp/dimg/exception/registry.rb +7 -0
- data/lib/dapp/dimg/filelock.rb +43 -0
- data/lib/dapp/dimg/git_artifact.rb +241 -18
- data/lib/dapp/dimg/git_repo/base.rb +90 -0
- data/lib/dapp/dimg/git_repo/own.rb +39 -0
- data/lib/dapp/dimg/git_repo/remote.rb +50 -0
- data/lib/dapp/dimg/image/argument.rb +143 -0
- data/lib/dapp/dimg/image/docker.rb +127 -0
- data/lib/dapp/dimg/image/scratch.rb +32 -0
- data/lib/dapp/dimg/image/stage.rb +95 -0
- data/lib/dapp/dimg/lock/base.rb +51 -0
- data/lib/dapp/dimg/lock/file.rb +48 -0
- data/lib/dapp/error/base.rb +0 -1
- data/lib/dapp/error/dapp.rb +5 -0
- data/lib/dapp/error/dappfile.rb +0 -1
- data/lib/dapp/error/shellout.rb +0 -1
- data/lib/dapp/exception/base.rb +0 -1
- data/lib/dapp/helper/cli.rb +5 -6
- data/lib/dapp/helper/net_status.rb +0 -1
- data/lib/dapp/helper/sha256.rb +0 -1
- data/lib/dapp/helper/trivia.rb +0 -1
- data/lib/dapp/prctl.rb +0 -1
- data/lib/dapp/version.rb +1 -2
- metadata +172 -140
- data/lib/dapp/artifact.rb +0 -23
- data/lib/dapp/build/stage/after_install_artifact.rb +0 -13
- data/lib/dapp/build/stage/after_setup_artifact.rb +0 -17
- data/lib/dapp/build/stage/artifact_base.rb +0 -80
- data/lib/dapp/build/stage/artifact_default.rb +0 -63
- data/lib/dapp/build/stage/base.rb +0 -203
- data/lib/dapp/build/stage/before_install.rb +0 -32
- data/lib/dapp/build/stage/before_install_artifact.rb +0 -13
- data/lib/dapp/build/stage/before_setup.rb +0 -30
- data/lib/dapp/build/stage/before_setup_artifact.rb +0 -13
- data/lib/dapp/build/stage/build_artifact.rb +0 -36
- data/lib/dapp/build/stage/docker_instructions.rb +0 -24
- data/lib/dapp/build/stage/from.rb +0 -34
- data/lib/dapp/build/stage/ga_archive.rb +0 -27
- data/lib/dapp/build/stage/ga_archive_dependencies.rb +0 -26
- data/lib/dapp/build/stage/ga_artifact_patch.rb +0 -21
- data/lib/dapp/build/stage/ga_base.rb +0 -79
- data/lib/dapp/build/stage/ga_dependencies_base.rb +0 -19
- data/lib/dapp/build/stage/ga_latest_patch.rb +0 -53
- data/lib/dapp/build/stage/import_artifact.rb +0 -65
- data/lib/dapp/build/stage/install/ga_post_install_patch.rb +0 -21
- data/lib/dapp/build/stage/install/ga_post_install_patch_dependencies.rb +0 -21
- data/lib/dapp/build/stage/install/ga_pre_install_patch.rb +0 -21
- data/lib/dapp/build/stage/install/ga_pre_install_patch_dependencies.rb +0 -21
- data/lib/dapp/build/stage/install/install.rb +0 -40
- data/lib/dapp/build/stage/mod/group.rb +0 -42
- data/lib/dapp/build/stage/mod/logging.rb +0 -104
- data/lib/dapp/build/stage/setup/ga_post_setup_patch.rb +0 -21
- data/lib/dapp/build/stage/setup/ga_post_setup_patch_dependencies.rb +0 -31
- data/lib/dapp/build/stage/setup/ga_pre_setup_patch.rb +0 -21
- data/lib/dapp/build/stage/setup/ga_pre_setup_patch_dependencies.rb +0 -21
- data/lib/dapp/build/stage/setup/setup.rb +0 -40
- data/lib/dapp/builder/chef/berksfile.rb +0 -78
- data/lib/dapp/builder/chef/cookbook.rb +0 -257
- data/lib/dapp/builder/chef/cookbook_metadata.rb +0 -54
- data/lib/dapp/builder/chef/error.rb +0 -12
- data/lib/dapp/cli/bp.rb +0 -37
- data/lib/dapp/cli/build.rb +0 -60
- data/lib/dapp/cli/cleanup.rb +0 -22
- data/lib/dapp/cli/list.rb +0 -17
- data/lib/dapp/cli/mrproper.rb +0 -26
- data/lib/dapp/cli/push.rb +0 -61
- data/lib/dapp/cli/run.rb +0 -53
- data/lib/dapp/cli/stage_image.rb +0 -24
- data/lib/dapp/cli/stages.rb +0 -23
- data/lib/dapp/cli/stages/cleanup_local.rb +0 -44
- data/lib/dapp/cli/stages/cleanup_repo.rb +0 -26
- data/lib/dapp/cli/stages/flush_local.rb +0 -23
- data/lib/dapp/cli/stages/flush_repo.rb +0 -24
- data/lib/dapp/cli/stages/pull.rb +0 -28
- data/lib/dapp/cli/stages/push.rb +0 -24
- data/lib/dapp/cli/tag.rb +0 -24
- data/lib/dapp/config/artifact_dimg.rb +0 -20
- data/lib/dapp/config/artifact_group.rb +0 -56
- data/lib/dapp/config/dimg.rb +0 -23
- data/lib/dapp/config/dimg/instance_methods.rb +0 -194
- data/lib/dapp/config/dimg/validation.rb +0 -125
- data/lib/dapp/config/dimg_group.rb +0 -60
- data/lib/dapp/config/dimg_group_base.rb +0 -53
- data/lib/dapp/config/dimg_group_main.rb +0 -21
- data/lib/dapp/config/directive/artifact.rb +0 -69
- data/lib/dapp/config/directive/artifact_base.rb +0 -93
- data/lib/dapp/config/directive/chef.rb +0 -57
- data/lib/dapp/config/directive/docker/artifact.rb +0 -15
- data/lib/dapp/config/directive/docker/base.rb +0 -20
- data/lib/dapp/config/directive/docker/dimg.rb +0 -81
- data/lib/dapp/config/directive/git_artifact_local.rb +0 -13
- data/lib/dapp/config/directive/git_artifact_remote.rb +0 -57
- data/lib/dapp/config/directive/mount.rb +0 -26
- data/lib/dapp/config/directive/shell/artifact.rb +0 -17
- data/lib/dapp/config/directive/shell/dimg.rb +0 -65
- data/lib/dapp/dimg/path.rb +0 -37
- data/lib/dapp/dimg/stages.rb +0 -59
- data/lib/dapp/dimg/tags.rb +0 -65
- data/lib/dapp/docker_registry.rb +0 -36
- data/lib/dapp/docker_registry/base.rb +0 -109
- data/lib/dapp/docker_registry/default.rb +0 -18
- data/lib/dapp/docker_registry/mod/authorization.rb +0 -63
- data/lib/dapp/docker_registry/mod/request.rb +0 -32
- data/lib/dapp/error/build.rb +0 -6
- data/lib/dapp/error/config.rb +0 -6
- data/lib/dapp/error/dimg.rb +0 -6
- data/lib/dapp/error/image.rb +0 -6
- data/lib/dapp/error/project.rb +0 -6
- data/lib/dapp/error/registry.rb +0 -6
- data/lib/dapp/error/rugged.rb +0 -6
- data/lib/dapp/error/tar_writer.rb +0 -6
- data/lib/dapp/exception/introspect_image.rb +0 -6
- data/lib/dapp/exception/registry.rb +0 -6
- data/lib/dapp/filelock.rb +0 -43
- data/lib/dapp/git_artifact.rb +0 -241
- data/lib/dapp/git_repo/base.rb +0 -88
- data/lib/dapp/git_repo/own.rb +0 -38
- data/lib/dapp/git_repo/remote.rb +0 -49
- data/lib/dapp/image/argument.rb +0 -134
- data/lib/dapp/image/docker.rb +0 -115
- data/lib/dapp/image/scratch.rb +0 -32
- data/lib/dapp/image/stage.rb +0 -94
- data/lib/dapp/lock/base.rb +0 -51
- data/lib/dapp/lock/error.rb +0 -14
- data/lib/dapp/lock/file.rb +0 -45
- data/lib/dapp/project/command/bp.rb +0 -21
- data/lib/dapp/project/command/build.rb +0 -20
- data/lib/dapp/project/command/cleanup.rb +0 -24
- data/lib/dapp/project/command/common.rb +0 -96
- data/lib/dapp/project/command/list.rb +0 -20
- data/lib/dapp/project/command/mrproper.rb +0 -69
- data/lib/dapp/project/command/push.rb +0 -28
- data/lib/dapp/project/command/run.rb +0 -15
- data/lib/dapp/project/command/spush.rb +0 -18
- data/lib/dapp/project/command/stage_image.rb +0 -15
- data/lib/dapp/project/command/stages/cleanup_local.rb +0 -138
- data/lib/dapp/project/command/stages/cleanup_repo.rb +0 -125
- data/lib/dapp/project/command/stages/common.rb +0 -86
- data/lib/dapp/project/command/stages/flush_local.rb +0 -22
- data/lib/dapp/project/command/stages/flush_repo.rb +0 -22
- data/lib/dapp/project/command/stages/pull.rb +0 -27
- data/lib/dapp/project/command/stages/push.rb +0 -23
- data/lib/dapp/project/command/tag.rb +0 -18
data/lib/dapp/git_repo/own.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module GitRepo
|
3
|
-
# Own Git repo
|
4
|
-
class Own < Base
|
5
|
-
def initialize(dimg)
|
6
|
-
super(dimg, 'own')
|
7
|
-
end
|
8
|
-
|
9
|
-
def exclude_paths
|
10
|
-
dimg.project.local_git_artifact_exclude_paths
|
11
|
-
end
|
12
|
-
|
13
|
-
def path
|
14
|
-
@path ||= Rugged::Repository.discover(dimg.home_path.to_s).path
|
15
|
-
rescue Rugged::RepositoryError => _e
|
16
|
-
raise Error::Rugged, code: :local_git_repository_does_not_exist
|
17
|
-
end
|
18
|
-
|
19
|
-
def diff(from, to, **kwargs)
|
20
|
-
if to.nil?
|
21
|
-
git.lookup(from).diff_workdir
|
22
|
-
else
|
23
|
-
super
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def latest_commit(_branch = nil)
|
28
|
-
git.head.target_id
|
29
|
-
end
|
30
|
-
|
31
|
-
def lookup_commit(commit)
|
32
|
-
super
|
33
|
-
rescue Rugged::OdbError => _e
|
34
|
-
raise Error::Rugged, code: :commit_not_found_in_local_git_repository, data: { commit: commit }
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
data/lib/dapp/git_repo/remote.rb
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module GitRepo
|
3
|
-
# Normal Git repo
|
4
|
-
class Remote < Base
|
5
|
-
def initialize(dimg, name, url:)
|
6
|
-
super(dimg, name)
|
7
|
-
|
8
|
-
@url = url
|
9
|
-
|
10
|
-
dimg.project.log_secondary_process(dimg.project.t(code: 'process.git_artifact_clone', data: { name: name }), short: true) do
|
11
|
-
begin
|
12
|
-
Rugged::Repository.clone_at(url, path, bare: true)
|
13
|
-
rescue Rugged::NetworkError, Rugged::SslError => e
|
14
|
-
raise Error::Rugged, code: :rugged_remote_error, data: { message: e.message, url: url }
|
15
|
-
end
|
16
|
-
end unless File.directory?(path)
|
17
|
-
end
|
18
|
-
|
19
|
-
def path
|
20
|
-
dimg.build_path("#{name}.git").to_s
|
21
|
-
end
|
22
|
-
|
23
|
-
def fetch!(branch = nil)
|
24
|
-
branch ||= self.branch
|
25
|
-
dimg.project.log_secondary_process(dimg.project.t(code: 'process.git_artifact_fetch', data: { name: name }), short: true) do
|
26
|
-
git.fetch('origin', [branch])
|
27
|
-
end unless dimg.ignore_git_fetch || dimg.project.dry_run?
|
28
|
-
end
|
29
|
-
|
30
|
-
def latest_commit(branch)
|
31
|
-
git.ref("refs/remotes/origin/#{branch}").target_id
|
32
|
-
end
|
33
|
-
|
34
|
-
def lookup_commit(commit)
|
35
|
-
super
|
36
|
-
rescue Rugged::OdbError => _e
|
37
|
-
raise Error::Rugged, code: :commit_not_found_in_remote_git_repository, data: { commit: commit, url: url }
|
38
|
-
end
|
39
|
-
|
40
|
-
protected
|
41
|
-
|
42
|
-
attr_reader :url
|
43
|
-
|
44
|
-
def git
|
45
|
-
super(bare: true)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
data/lib/dapp/image/argument.rb
DELETED
@@ -1,134 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
module Image
|
3
|
-
# Argument
|
4
|
-
module Argument
|
5
|
-
def add_change_volume(value)
|
6
|
-
add_change_option(:volume, value)
|
7
|
-
end
|
8
|
-
|
9
|
-
def add_change_expose(value)
|
10
|
-
add_change_option(:expose, value)
|
11
|
-
end
|
12
|
-
|
13
|
-
def add_change_env(**options)
|
14
|
-
add_change_option(:env, options)
|
15
|
-
end
|
16
|
-
|
17
|
-
def add_change_label(**options)
|
18
|
-
add_change_option(:label, options)
|
19
|
-
end
|
20
|
-
|
21
|
-
def add_change_cmd(value)
|
22
|
-
add_change_option(:cmd, value)
|
23
|
-
end
|
24
|
-
|
25
|
-
def add_change_entrypoint(value)
|
26
|
-
add_change_option(:entrypoint, value)
|
27
|
-
end
|
28
|
-
|
29
|
-
def add_change_onbuild(value)
|
30
|
-
add_change_option(:onbuild, value)
|
31
|
-
end
|
32
|
-
|
33
|
-
def add_change_workdir(value)
|
34
|
-
add_change_option(:workdir, value)
|
35
|
-
end
|
36
|
-
|
37
|
-
def add_change_user(value)
|
38
|
-
add_change_option(:user, value)
|
39
|
-
end
|
40
|
-
|
41
|
-
def add_service_change_label(**options)
|
42
|
-
add_service_change_option(:label, options)
|
43
|
-
end
|
44
|
-
|
45
|
-
def add_env(var, value)
|
46
|
-
add_option(:env, "#{var}=#{value}")
|
47
|
-
end
|
48
|
-
|
49
|
-
def add_volume(value)
|
50
|
-
add_option(:volume, value)
|
51
|
-
end
|
52
|
-
|
53
|
-
def add_volumes_from(value)
|
54
|
-
add_option(:'volumes-from', value)
|
55
|
-
end
|
56
|
-
|
57
|
-
def add_command(*commands)
|
58
|
-
@bash_commands.concat(commands.flatten)
|
59
|
-
end
|
60
|
-
|
61
|
-
def prepare_instructions(options)
|
62
|
-
options.map do |key, vals|
|
63
|
-
case key
|
64
|
-
when :cmd, :entrypoint then [vals]
|
65
|
-
when :env, :label then vals.map(&method(:options_to_args)).flatten
|
66
|
-
else vals
|
67
|
-
end.map { |val| %(#{key.to_s.upcase} #{val}) }
|
68
|
-
end.flatten
|
69
|
-
end
|
70
|
-
|
71
|
-
protected
|
72
|
-
|
73
|
-
attr_reader :bash_commands
|
74
|
-
attr_reader :change_options, :service_change_options
|
75
|
-
attr_reader :options
|
76
|
-
|
77
|
-
def add_option(key, value)
|
78
|
-
add_option_default(options, key, value)
|
79
|
-
end
|
80
|
-
|
81
|
-
def add_change_option(key, value)
|
82
|
-
add_option_default(change_options, key, value)
|
83
|
-
end
|
84
|
-
|
85
|
-
def add_service_change_option(key, value)
|
86
|
-
add_option_default(service_change_options, key, value)
|
87
|
-
end
|
88
|
-
|
89
|
-
def add_option_default(hash, key, value)
|
90
|
-
hash[key] = (hash[key].nil? ? [value] : (hash[key] << value)).flatten
|
91
|
-
end
|
92
|
-
|
93
|
-
def from_change_options
|
94
|
-
return {} if from.nil?
|
95
|
-
[:entrypoint, :cmd].each_with_object({}) do |option, options|
|
96
|
-
options[option] = self.class.image_config_option(image_id: from.built_id, option: option)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
def options_to_args(options)
|
101
|
-
options.map { |key, value| "#{key}=#{value}" }
|
102
|
-
end
|
103
|
-
|
104
|
-
def prepared_options
|
105
|
-
all_options.map { |key, vals| Array(vals).map { |val| "--#{key}=#{val}" } }.flatten.join(' ')
|
106
|
-
end
|
107
|
-
|
108
|
-
def all_options
|
109
|
-
service_options.merge(options)
|
110
|
-
end
|
111
|
-
|
112
|
-
def service_options
|
113
|
-
{ entrypoint: project.bash_bin, name: container_name }
|
114
|
-
end
|
115
|
-
|
116
|
-
def prepared_change
|
117
|
-
prepare_instructions(all_change_options).map { |instruction| %(-c '#{instruction}') }.join(' ')
|
118
|
-
end
|
119
|
-
|
120
|
-
def all_change_options
|
121
|
-
from_change_options.merge(change_options.merge(service_change_options) { |_, v1, v2| [v1, v2].flatten })
|
122
|
-
end
|
123
|
-
|
124
|
-
def prepared_bash_command
|
125
|
-
project.shellout_pack prepared_commands.join(' && ')
|
126
|
-
end
|
127
|
-
|
128
|
-
def prepared_commands
|
129
|
-
return [project.true_bin] if bash_commands.empty?
|
130
|
-
bash_commands
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end # Image
|
134
|
-
end # Dapp
|
data/lib/dapp/image/docker.rb
DELETED
@@ -1,115 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
# Image
|
3
|
-
module Image
|
4
|
-
# Docker
|
5
|
-
class Docker
|
6
|
-
attr_reader :from
|
7
|
-
attr_reader :name
|
8
|
-
attr_reader :project
|
9
|
-
|
10
|
-
def self.image_by_name(name:, **kwargs)
|
11
|
-
(@images ||= {})[name] ||= new(name: name, **kwargs)
|
12
|
-
end
|
13
|
-
|
14
|
-
def initialize(name:, project:, from: nil)
|
15
|
-
@from = from
|
16
|
-
@name = name
|
17
|
-
@project = project
|
18
|
-
end
|
19
|
-
|
20
|
-
def id
|
21
|
-
cache[:id]
|
22
|
-
end
|
23
|
-
|
24
|
-
def untag!
|
25
|
-
raise Error::Build, code: :image_already_untagged, data: { name: name } unless tagged?
|
26
|
-
project.shellout!("docker rmi #{name}")
|
27
|
-
cache_reset
|
28
|
-
end
|
29
|
-
|
30
|
-
def push!
|
31
|
-
raise Error::Build, code: :image_not_exist, data: { name: name } unless tagged?
|
32
|
-
project.log_secondary_process(project.t(code: 'process.image_push', data: { name: name })) do
|
33
|
-
project.shellout!("docker push #{name}", log_verbose: true)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def pull!
|
38
|
-
return if tagged?
|
39
|
-
project.log_secondary_process(project.t(code: 'process.image_pull', data: { name: name })) do
|
40
|
-
project.shellout!("docker pull #{name}", log_verbose: true)
|
41
|
-
end
|
42
|
-
cache_reset
|
43
|
-
end
|
44
|
-
|
45
|
-
def tagged?
|
46
|
-
!!id
|
47
|
-
end
|
48
|
-
|
49
|
-
def created_at
|
50
|
-
raise Error::Build, code: :image_not_exist, data: { name: name } unless tagged?
|
51
|
-
cache[:created_at]
|
52
|
-
end
|
53
|
-
|
54
|
-
def size
|
55
|
-
raise Error::Build, code: :image_not_exist, data: { name: name } unless tagged?
|
56
|
-
cache[:size]
|
57
|
-
end
|
58
|
-
|
59
|
-
def self.image_config_option(image_id:, option:)
|
60
|
-
output = Project.shellout!("docker inspect --format='{{json .Config.#{option.to_s.capitalize}}}' #{image_id}").stdout.strip
|
61
|
-
output == 'null' ? [] : JSON.parse(output)
|
62
|
-
end
|
63
|
-
|
64
|
-
def cache_reset
|
65
|
-
self.class.cache_reset(name)
|
66
|
-
end
|
67
|
-
|
68
|
-
protected
|
69
|
-
|
70
|
-
def cache
|
71
|
-
self.class.cache[name.to_s] || {}
|
72
|
-
end
|
73
|
-
|
74
|
-
class << self
|
75
|
-
def image_name_format
|
76
|
-
separator = '[_.]|__|[-]*'
|
77
|
-
tag = "[[:alnum:]][[[:alnum:]]#{separator}]{0,127}"
|
78
|
-
"#{DockerRegistry.repo_name_format}(:(?<tag>#{tag}))?"
|
79
|
-
end
|
80
|
-
|
81
|
-
def image_name?(name)
|
82
|
-
!(/^#{image_name_format}$/ =~ name).nil?
|
83
|
-
end
|
84
|
-
|
85
|
-
def tag!(id:, tag:)
|
86
|
-
Project.shellout!("docker tag #{id} #{tag}")
|
87
|
-
cache_reset
|
88
|
-
end
|
89
|
-
|
90
|
-
def cache
|
91
|
-
@cache ||= (@cache = {}).tap { cache_reset }
|
92
|
-
end
|
93
|
-
|
94
|
-
def cache_reset(name = '')
|
95
|
-
cache.delete(name)
|
96
|
-
Project.shellout!("docker images --format='{{.Repository}}:{{.Tag}};{{.ID}};{{.CreatedAt}};{{.Size}}' --no-trunc #{name}").stdout.lines.each do |l|
|
97
|
-
name, id, created_at, size_field = l.split(';')
|
98
|
-
size = begin
|
99
|
-
number, unit = size_field.split
|
100
|
-
coef = case unit.to_s.downcase
|
101
|
-
when 'b' then return number.to_f
|
102
|
-
when 'kb' then 1
|
103
|
-
when 'mb' then 2
|
104
|
-
when 'gb' then 3
|
105
|
-
when 'tb' then 4
|
106
|
-
end
|
107
|
-
number.to_f * (1000 ** coef)
|
108
|
-
end
|
109
|
-
cache[name] = { id: id, created_at: created_at, size: size }
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end # Docker
|
114
|
-
end # Image
|
115
|
-
end # Dapp
|
data/lib/dapp/image/scratch.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
# Image
|
3
|
-
module Image
|
4
|
-
# Stage
|
5
|
-
class Scratch < Stage
|
6
|
-
def initialize(**_kwargs)
|
7
|
-
super
|
8
|
-
@from_archives = []
|
9
|
-
end
|
10
|
-
|
11
|
-
def add_archive(*archives)
|
12
|
-
@from_archives.concat(archives.flatten)
|
13
|
-
end
|
14
|
-
|
15
|
-
def build!(**_kwargs)
|
16
|
-
raise
|
17
|
-
|
18
|
-
#FIXME: system-shellout rejected
|
19
|
-
# build_from_command = if from_archives.empty?
|
20
|
-
# "#{project.tar_bin} c --files-from /dev/null"
|
21
|
-
# else
|
22
|
-
# "#{project.cat_bin} #{from_archives.join(' ')}"
|
23
|
-
# end
|
24
|
-
# @built_id = project.system_shellout!("#{build_from_command} | docker import #{prepared_change} - ").stdout.strip
|
25
|
-
end
|
26
|
-
|
27
|
-
protected
|
28
|
-
|
29
|
-
attr_accessor :from_archives
|
30
|
-
end # Stage
|
31
|
-
end # Image
|
32
|
-
end # Dapp
|
data/lib/dapp/image/stage.rb
DELETED
@@ -1,94 +0,0 @@
|
|
1
|
-
module Dapp
|
2
|
-
# Image
|
3
|
-
module Image
|
4
|
-
# Stage
|
5
|
-
class Stage < Docker
|
6
|
-
include Argument
|
7
|
-
|
8
|
-
def initialize(name:, project:, built_id: nil, from: nil)
|
9
|
-
@container_name = "#{name[/[[^:].]*/]}.#{SecureRandom.hex(4)}"
|
10
|
-
@built_id = built_id
|
11
|
-
|
12
|
-
@bash_commands = []
|
13
|
-
@options = {}
|
14
|
-
@change_options = {}
|
15
|
-
@service_change_options = {}
|
16
|
-
|
17
|
-
super(name: name, project: project, from: from)
|
18
|
-
end
|
19
|
-
|
20
|
-
def built_id
|
21
|
-
@built_id ||= id
|
22
|
-
end
|
23
|
-
|
24
|
-
def build!
|
25
|
-
run!
|
26
|
-
@built_id = commit!
|
27
|
-
ensure
|
28
|
-
project.shellout("docker rm #{container_name}")
|
29
|
-
end
|
30
|
-
|
31
|
-
def built?
|
32
|
-
!built_id.nil?
|
33
|
-
end
|
34
|
-
|
35
|
-
def export!(name)
|
36
|
-
tag!(name).tap do |image|
|
37
|
-
image.push!
|
38
|
-
image.untag!
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def tag!(name)
|
43
|
-
clone!(name).tap do |image|
|
44
|
-
self.class.tag!(id: image.built_id, tag: image.name)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def import!(name)
|
49
|
-
clone!(name).tap do |image|
|
50
|
-
image.pull!
|
51
|
-
@built_id = image.built_id
|
52
|
-
save_in_cache!
|
53
|
-
image.untag!
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
def save_in_cache!
|
58
|
-
project.log_warning(desc: { code: :another_image_already_tagged }) if !(existed_id = id).nil? && built_id != existed_id
|
59
|
-
self.class.tag!(id: built_id, tag: name)
|
60
|
-
end
|
61
|
-
|
62
|
-
def labels
|
63
|
-
raise Error::Build, code: :image_not_exist, data: { name: name } if built_id.nil?
|
64
|
-
self.class.image_config_option(image_id: built_id, option: 'labels')
|
65
|
-
end
|
66
|
-
|
67
|
-
protected
|
68
|
-
|
69
|
-
attr_reader :container_name
|
70
|
-
|
71
|
-
def run!
|
72
|
-
raise Error::Build, code: :built_id_not_defined if from.built_id.nil?
|
73
|
-
project.shellout!("docker run #{prepared_options} #{from.built_id} -ec '#{prepared_bash_command}'", log_verbose: true)
|
74
|
-
rescue Error::Shellout => error
|
75
|
-
project.log_warning(desc: { code: :launched_command, data: { command: prepared_commands.join(' && ') }, context: :container })
|
76
|
-
|
77
|
-
raise unless project.introspect_error? || project.introspect_before_error?
|
78
|
-
built_id = project.introspect_error? ? commit! : from.built_id
|
79
|
-
raise Exception::IntrospectImage, data: { built_id: built_id,
|
80
|
-
options: prepared_options,
|
81
|
-
rmi: project.introspect_error?,
|
82
|
-
error: error }
|
83
|
-
end
|
84
|
-
|
85
|
-
def commit!
|
86
|
-
project.shellout!("docker commit #{prepared_change} #{container_name}").stdout.strip
|
87
|
-
end
|
88
|
-
|
89
|
-
def clone!(name)
|
90
|
-
self.class.new(name: name, project: project, built_id: built_id)
|
91
|
-
end
|
92
|
-
end # Stage
|
93
|
-
end # Image
|
94
|
-
end # Dapp
|