Class: EtFullSystem::DockerCommand

Inherits:
Thor
  • Object
show all
Defined in:
lib/et_full_system/cli/docker.rb

Overview

!/usr/bin/env ruby frozen_string_literal: true

Instance Method Summary collapse

Instance Method Details

#admin_envObject



114
115
116
# File 'lib/et_full_system/cli/docker.rb', line 114

def admin_env
  service_env('admin')
end

#api_envObject



102
103
104
# File 'lib/et_full_system/cli/docker.rb', line 102

def api_env
  service_env('api')
end

#bootstrapObject



12
13
14
15
16
17
18
# File 'lib/et_full_system/cli/docker.rb', line 12

def bootstrap
  unbundled do
    cmd = File.absolute_path('../../../shell_scripts/docker_bootstrap.sh', __dir__)
    puts cmd
    exec(cmd)
  end
end

#ccd_export_envObject



90
91
92
# File 'lib/et_full_system/cli/docker.rb', line 90

def ccd_export_env
  service_env('et_ccd_export')
end

#compose(*args) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/et_full_system/cli/docker.rb', line 32

def compose(*args)
  unbundled do
    gem_root = File.absolute_path('../../..', __dir__)
    cmd = "UID=#{Process.uid} GEM_VERSION=#{EtFullSystem::VERSION} LOCALHOST_FROM_DOCKER_IP=#{host_ip} docker-compose -f #{gem_root}/docker/docker-compose.yml #{args.join(' ')}"
    puts cmd
    exec(cmd)
  end
end

#disable_adminObject



191
192
193
# File 'lib/et_full_system/cli/docker.rb', line 191

def disable_admin
  run_on_local("disable_admin")
end

#disable_apiObject



186
187
188
# File 'lib/et_full_system/cli/docker.rb', line 186

def disable_api
  run_on_local("disable_api")
end

#disable_atos_apiObject



181
182
183
# File 'lib/et_full_system/cli/docker.rb', line 181

def disable_atos_api
  run_on_local("disable_atos_api")
end

#disable_ccd_exportObject



176
177
178
# File 'lib/et_full_system/cli/docker.rb', line 176

def disable_ccd_export
  run_on_local("disable_ccd_export")
end

#disable_et1Object



171
172
173
# File 'lib/et_full_system/cli/docker.rb', line 171

def disable_et1
  run_on_local("disable_et1")
end

#disable_et3Object



196
197
198
# File 'lib/et_full_system/cli/docker.rb', line 196

def disable_et3
  run_on_local("disable_et3")
end

#enable_adminObject



161
162
163
# File 'lib/et_full_system/cli/docker.rb', line 161

def enable_admin
  run_on_local("enable_admin")
end

#enable_apiObject



156
157
158
# File 'lib/et_full_system/cli/docker.rb', line 156

def enable_api
  run_on_local("enable_api")
end

#enable_atos_apiObject



151
152
153
# File 'lib/et_full_system/cli/docker.rb', line 151

def enable_atos_api
  run_on_local("enable_atos_api")
end

#enable_ccd_exportObject



146
147
148
# File 'lib/et_full_system/cli/docker.rb', line 146

def enable_ccd_export
  run_on_local("enable_ccd_export")
end

#enable_et1Object



141
142
143
# File 'lib/et_full_system/cli/docker.rb', line 141

def enable_et1
  run_on_local("enable_et1")
end

#enable_et3Object



166
167
168
# File 'lib/et_full_system/cli/docker.rb', line 166

def enable_et3
  run_on_local("enable_et3")
end

#et1_envObject



79
80
81
# File 'lib/et_full_system/cli/docker.rb', line 79

def et1_env
  service_env('et1')
end

#et3_envObject



127
128
129
# File 'lib/et_full_system/cli/docker.rb', line 127

def et3_env
  service_env('et3')
end

#invoker(*args) ⇒ Object



42
43
44
# File 'lib/et_full_system/cli/docker.rb', line 42

def invoker(*args)
  run_on_local("invoker #{args.join(' ')}")
end

#local_admin(port) ⇒ Object



107
108
109
110
111
# File 'lib/et_full_system/cli/docker.rb', line 107

def local_admin(port)
  local_service('admin', port)
  disable_admin
  puts "Admin is now expected to be hosted on port #{port} on your machine. To configure your environment, run 'et_full_system docker admin_env > .env'"
end

#local_api(port) ⇒ Object



95
96
97
98
99
# File 'lib/et_full_system/cli/docker.rb', line 95

def local_api(port)
  local_service('api', port)
  disable_api
  puts "api is now expected to be hosted on port #{port} on your machine. Also, you must provide your own sidekiq. To configure your environment, run 'et_full_system docker api_env > .env'"
end

#local_ccd_exportObject



84
85
86
87
# File 'lib/et_full_system/cli/docker.rb', line 84

def local_ccd_export
  run_on_local('disable_ccd_export')
  puts "ccd_export is now expected to be running on your machine. To configure your environment, run 'et_full_system docker ccd_export_env > .env'"
end

#local_et1(port) ⇒ Object



71
72
73
74
75
# File 'lib/et_full_system/cli/docker.rb', line 71

def local_et1(port)
  local_service('et1', port)
  disable_et1
  puts "ET1 is now expected to be hosted on port #{port} on your machine. To configure your environment, run 'et_full_system docker et1_env > .env'"
end

#local_et3(port) ⇒ Object



119
120
121
122
123
# File 'lib/et_full_system/cli/docker.rb', line 119

def local_et3(port)
  local_service('et3', port)
  disable_et3
  puts "ET3 is now expected to be hosted on port #{port} on your machine. To configure your environment, run 'et_full_system docker et3_env > .env'"
end

#local_service(service, port) ⇒ Object



66
67
68
# File 'lib/et_full_system/cli/docker.rb', line 66

def local_service(service, port)
  update_service_url(service, local_service_url(port))
end

#resetObject



47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/et_full_system/cli/docker.rb', line 47

def reset
  unbundled do
    gem_root = File.absolute_path('../../..', __dir__)
    cmd = "UID=#{Process.uid} GEM_VERSION=#{EtFullSystem::VERSION} LOCALHOST_FROM_DOCKER_IP=#{host_ip} docker-compose -f #{gem_root}/docker/docker-compose.yml down -v"
    puts cmd
    next unless system(cmd)
    cmd = "UID=#{Process.uid} GEM_VERSION=#{EtFullSystem::VERSION} LOCALHOST_FROM_DOCKER_IP=#{host_ip} docker-compose -f #{gem_root}/docker/docker-compose.yml build --no-cache"
    puts cmd
    next unless system(cmd)
    self.class.start(['setup'])
  end
end

#restart_adminObject



216
217
218
# File 'lib/et_full_system/cli/docker.rb', line 216

def restart_admin
  run_on_local("restart_admin")
end

#restart_apiObject



206
207
208
# File 'lib/et_full_system/cli/docker.rb', line 206

def restart_api
  run_on_local("restart_api")
end

#restart_atos_apiObject



221
222
223
# File 'lib/et_full_system/cli/docker.rb', line 221

def restart_atos_api
  run_on_local("restart_atos_api")
end

#restart_ccd_exportObject



226
227
228
# File 'lib/et_full_system/cli/docker.rb', line 226

def restart_ccd_export
  run_on_local("restart_ccd_export")
end

#restart_et1Object



201
202
203
# File 'lib/et_full_system/cli/docker.rb', line 201

def restart_et1
  run_on_local("restart_et1")
end

#restart_et3Object



211
212
213
# File 'lib/et_full_system/cli/docker.rb', line 211

def restart_et3
  run_on_local("restart_et3")
end

#service_env(service) ⇒ Object



132
133
134
135
136
137
138
# File 'lib/et_full_system/cli/docker.rb', line 132

def service_env(service)
  result = run_on_local("service_env #{service}", return_output: true)
  replace_db_host_port(result)
  replace_redis_host_port(result)
  replace_smtp_host_port(result)
  puts result
end

#setupObject



21
22
23
24
25
26
27
28
29
# File 'lib/et_full_system/cli/docker.rb', line 21

def setup
  unbundled do
    gem_root = File.absolute_path('../../..', __dir__)
    cmd = "/bin/bash --login -c \"cd /home/app/full_system && et_full_system docker bootstrap && et_full_system local setup --in-docker-compose\""
    compose_cmd = "UID=#{Process.uid} GEM_VERSION=#{EtFullSystem::VERSION} LOCALHOST_FROM_DOCKER_IP=#{host_ip} docker-compose -f #{gem_root}/docker/docker-compose.yml run --rm et #{cmd}"
    puts compose_cmd
    exec(compose_cmd)
  end
end

#update_service_url(service, url) ⇒ Object



61
62
63
# File 'lib/et_full_system/cli/docker.rb', line 61

def update_service_url(service, url)
  run_on_local("update_service_url #{service} #{url}")
end