kaiser 0.7.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/exe/kaiser +0 -1
- data/lib/kaiser/cli.rb +8 -6
- data/lib/kaiser/cmds/up.rb +4 -1
- data/lib/kaiser/command_runner.rb +12 -8
- data/lib/kaiser/kaiserfile.rb +12 -2
- data/lib/kaiser/service.rb +38 -0
- data/lib/kaiser/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cafb072893ff43f02aff0365dbb849f49800bf32ab65ce962b39745f97478dcd
|
4
|
+
data.tar.gz: 5f5e0be3d1f24ae1dc1b2ec9a7a2e50bda7fb748bda204c13856c3689883b003
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a123dc4b78a3d8859a88d52a5a3b2f34019949d30b2aa2f70c2a43e3938b278a55707b1b2e576092e857a196d46063c40f3d37bb5d26b7e51c571ed30e13c4e4
|
7
|
+
data.tar.gz: 020c7bbb44d0ce3878ca3c91a31afebe92736e4a511637291c3cafa2847865ebd4037567837aad9721963ac07838d36fcc2c23cea3a763438f510dea9aac7f99
|
data/README.md
CHANGED
@@ -38,14 +38,14 @@ docker build -t degica/kaiser .
|
|
38
38
|
And then add the following line to your `.bashrc` or `.bash_profile`
|
39
39
|
|
40
40
|
```
|
41
|
-
alias kaiser='docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock -v $HOME/.kaiser:/root/.kaiser -v `pwd`:`pwd` -e CONTEXT_DIR="`pwd`"
|
41
|
+
alias kaiser='docker run --pull=always --rm -ti -v /var/run/docker.sock:/var/run/docker.sock -v $HOME/.kaiser:/root/.kaiser -v `pwd`:`pwd` -e CONTEXT_DIR="`pwd`" degicadev/kaiser'
|
42
42
|
```
|
43
43
|
|
44
44
|
Or if you use fish
|
45
45
|
|
46
46
|
```
|
47
47
|
function kaiser
|
48
|
-
docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock -v $HOME/.kaiser:/root/.kaiser -v (pwd):(pwd) -e CONTEXT_DIR=(pwd)
|
48
|
+
docker run --pull=always --rm -ti -v /var/run/docker.sock:/var/run/docker.sock -v $HOME/.kaiser:/root/.kaiser -v (pwd):(pwd) -e CONTEXT_DIR=(pwd) degicadev/kaiser $argv
|
49
49
|
end
|
50
50
|
```
|
51
51
|
|
data/exe/kaiser
CHANGED
data/lib/kaiser/cli.rb
CHANGED
@@ -110,11 +110,7 @@ module Kaiser
|
|
110
110
|
services.each do |service|
|
111
111
|
Config.info_out.puts "Starting service: #{service.name}"
|
112
112
|
run_if_dead(
|
113
|
-
service.shared_name,
|
114
|
-
"docker run -d
|
115
|
-
--name #{service.shared_name}
|
116
|
-
--network #{Config.config[:networkname]}
|
117
|
-
#{service.image}"
|
113
|
+
service.shared_name, service.start_docker_command
|
118
114
|
)
|
119
115
|
end
|
120
116
|
end
|
@@ -246,6 +242,10 @@ module Kaiser
|
|
246
242
|
end
|
247
243
|
|
248
244
|
def attach_app
|
245
|
+
start_services
|
246
|
+
|
247
|
+
puts 'Attaching to app...'
|
248
|
+
|
249
249
|
cmd = (ARGV || []).join(' ')
|
250
250
|
killrm app_container_name
|
251
251
|
|
@@ -265,6 +265,8 @@ module Kaiser
|
|
265
265
|
#{app_params}
|
266
266
|
kaiser:#{envname}-#{current_branch} #{cmd}".tr("\n", ' ')
|
267
267
|
|
268
|
+
stop_services
|
269
|
+
|
268
270
|
Config.out.puts 'Cleaning up...'
|
269
271
|
end
|
270
272
|
|
@@ -581,7 +583,7 @@ module Kaiser
|
|
581
583
|
--network #{Config.config[:networkname]}
|
582
584
|
--privileged
|
583
585
|
-v /var/run/docker.sock:/docker.sock:ro
|
584
|
-
|
586
|
+
phensley/docker-dns
|
585
587
|
--domain #{http_suffix}
|
586
588
|
--record :#{ip_of_container(Config.config[:shared_names][:nginx])}"
|
587
589
|
)
|
data/lib/kaiser/cmds/up.rb
CHANGED
@@ -45,7 +45,10 @@ module Kaiser
|
|
45
45
|
Config.info_out.puts 'Setting up application'
|
46
46
|
File.write(tmp_dockerfile_name, docker_file_contents)
|
47
47
|
|
48
|
-
CommandRunner.run! Config.out, build_cmd.join("\n\t")
|
48
|
+
CommandRunner.run! Config.out, build_cmd.join("\n\t"), env_vars: {
|
49
|
+
'DOCKER_BUILDKIT' => '1',
|
50
|
+
'BUILDKIT_PROGRESS' => 'plain'
|
51
|
+
}
|
49
52
|
FileUtils.rm(tmp_dockerfile_name)
|
50
53
|
end
|
51
54
|
end
|
@@ -1,24 +1,28 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'pty'
|
3
4
|
require 'English'
|
4
5
|
|
5
|
-
# This is the command runner
|
6
6
|
module Kaiser
|
7
|
-
#
|
7
|
+
# This is the command runner
|
8
|
+
# it abstracts away the complicated syntax required to deal with
|
9
|
+
# PTY and to pass the lines programmatically to the host application
|
10
|
+
# as well as to capture the return code at the end.
|
8
11
|
class CommandRunner
|
9
|
-
def self.run(out, cmd, &block)
|
12
|
+
def self.run(out, cmd, env_vars: {}, &block)
|
10
13
|
out.puts "> #{cmd}"
|
11
|
-
CommandRunner.new(out, cmd).run_command(&block)
|
14
|
+
CommandRunner.new(out, cmd, env_vars).run_command(&block)
|
12
15
|
end
|
13
16
|
|
14
|
-
def self.run!(out, cmd, &block)
|
15
|
-
status = run(out, cmd, &block)
|
17
|
+
def self.run!(out, cmd, env_vars: {}, &block)
|
18
|
+
status = run(out, cmd, env_vars: env_vars, &block)
|
16
19
|
raise Kaiser::CmdError.new(cmd, status) if status.to_s != '0'
|
17
20
|
end
|
18
21
|
|
19
|
-
def initialize(out, cmd)
|
22
|
+
def initialize(out, cmd, env_vars)
|
20
23
|
@out = out
|
21
24
|
@cmd = cmd.tr "\n", ' '
|
25
|
+
@env_vars = env_vars
|
22
26
|
end
|
23
27
|
|
24
28
|
def print_and_return_status(status = 0)
|
@@ -38,7 +42,7 @@ module Kaiser
|
|
38
42
|
end
|
39
43
|
|
40
44
|
def run_command(&block)
|
41
|
-
PTY.spawn("#{@cmd} 2>&1") do |stdout, _stdin, pid|
|
45
|
+
PTY.spawn(@env_vars, "#{@cmd} 2>&1") do |stdout, _stdin, pid|
|
42
46
|
print_lines(stdout, &block)
|
43
47
|
Process.wait(pid)
|
44
48
|
end
|
data/lib/kaiser/kaiserfile.rb
CHANGED
@@ -102,10 +102,20 @@ module Kaiser
|
|
102
102
|
@server_type = value
|
103
103
|
end
|
104
104
|
|
105
|
-
def service(name,
|
105
|
+
def service(name,
|
106
|
+
image: name,
|
107
|
+
command: nil,
|
108
|
+
binds: {},
|
109
|
+
env: {})
|
110
|
+
|
106
111
|
raise "duplicate service #{name.inspect}" if @services.key?(name)
|
107
112
|
|
108
|
-
@services[name] = {
|
113
|
+
@services[name] = {
|
114
|
+
image: image,
|
115
|
+
command: command,
|
116
|
+
binds: binds,
|
117
|
+
env: env
|
118
|
+
}
|
109
119
|
end
|
110
120
|
end
|
111
121
|
end
|
data/lib/kaiser/service.rb
CHANGED
@@ -18,5 +18,43 @@ module Kaiser
|
|
18
18
|
def image
|
19
19
|
@service_info[:image]
|
20
20
|
end
|
21
|
+
|
22
|
+
def command
|
23
|
+
@service_info[:command].to_s
|
24
|
+
end
|
25
|
+
|
26
|
+
def binds
|
27
|
+
@service_info[:binds] || {}
|
28
|
+
end
|
29
|
+
|
30
|
+
def env
|
31
|
+
@service_info[:env] || {}
|
32
|
+
end
|
33
|
+
|
34
|
+
def start_docker_command
|
35
|
+
envstring = env.map do |k, v|
|
36
|
+
"-e #{k}=#{v}"
|
37
|
+
end.join(' ')
|
38
|
+
|
39
|
+
bindstring = binds.map do |k, v|
|
40
|
+
"-v #{k}:#{v}"
|
41
|
+
end.join(' ')
|
42
|
+
|
43
|
+
commandstring = command
|
44
|
+
|
45
|
+
cmd_array = [
|
46
|
+
'docker run -d',
|
47
|
+
"--name #{shared_name}",
|
48
|
+
"--network #{Config.config[:networkname]}",
|
49
|
+
envstring,
|
50
|
+
bindstring,
|
51
|
+
image,
|
52
|
+
commandstring
|
53
|
+
]
|
54
|
+
|
55
|
+
cmd_array.filter! { |x| !x.empty? }
|
56
|
+
|
57
|
+
cmd_array.join(' ')
|
58
|
+
end
|
21
59
|
end
|
22
60
|
end
|
data/lib/kaiser/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kaiser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Siaw
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|