smartcloud 0.0.206 → 0.1.0.beta5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6c62081c62d76faea905c0502e283247123f433d020ae50d47f50dfb1416c293
4
- data.tar.gz: 91bc5b352f3f2c87c23aa7e6d65fdde68acb7994f7fad982374456556bf09689
3
+ metadata.gz: 62498c1f68025b362a0887fe07ff16f8f43eeae99955e9ff60b2098c10d7b0da
4
+ data.tar.gz: a85f8a5ac34a078ab695a6ca91db41c5aa06692b2ab45b951cd7e81f31a741a3
5
5
  SHA512:
6
- metadata.gz: 6ec10636c50c3aa415047521e5e1e4712a21c4497f565d65f55cc3a9a34cb14990cf29067c0994dd3d51e67b32a01b48f4c60c96eaa2fa2f6c34536817c24282
7
- data.tar.gz: a140bbac432112aaf0e33020612238ff2f11a24242ecf22a17bb28930934af23eea383d15b5c88e9cce1d08d1fa3de5c4cf6d5a5dded857e7f1c66b63bcfe183
6
+ metadata.gz: 2bc01a890b6cefe16b7aab7f6fce7901a73de54a22ff2eceb05999be9cfd31218a9e4e02670470f09992e513c6036ccb365b9563dfe22761e76fa7c1d03a5fc3
7
+ data.tar.gz: 502d8097742296cbc37ad72114904123d7d8f4bbcbf8d66fc8d5bc010e016aea0905bd6abb1d41c99f5e037f01c58cbd98c0db25088df8984e6e9c1873d4a7fc
@@ -71,10 +71,10 @@ module Smartcloud
71
71
  # Remove server.pid if it exists
72
72
  FileUtils.rm("tmp/pids/server.pid") if File.exist? "tmp/pids/server.pid"
73
73
 
74
- # if system("god -c Godfile -D")
74
+ if system("bundle", "exec", "puma", "-C", "config/puma.rb")
75
75
  return true
76
- # end
77
- # return false
76
+ end
77
+ return false
78
78
  end
79
79
 
80
80
  def set_logger_formatter_arrow
@@ -1,5 +1,5 @@
1
1
  FROM ruby:2.6.4-alpine3.10
2
- MAINTAINER Timeboard <hello@timeboard.me>
2
+ LABEL maintainer="Timeboard <hello@timeboard.me>"
3
3
 
4
4
  # User
5
5
  # --- Fix to change gid of 999 to 99 so that addgroup is free to create a group with 999 as gid
@@ -30,6 +30,6 @@ USER "$USER_NAME"
30
30
  WORKDIR "/home/$USER_NAME/.smartcloud/grids/grid-runner/apps"
31
31
 
32
32
  # Gems
33
- RUN gem install smartcloud
33
+ RUN gem install smartcloud --pre
34
34
 
35
35
  CMD ["spawn-fcgi", "-n", "-p", "9000", "/usr/bin/fcgiwrap", "-f"]
@@ -23,8 +23,7 @@ USER "$USER_NAME"
23
23
  WORKDIR "/app"
24
24
 
25
25
  # Gems
26
- RUN gem install smartcloud && \
27
- gem install bundler && \
28
- gem install god
26
+ RUN gem install smartcloud --pre && \
27
+ gem install bundler
29
28
 
30
29
  CMD ["buildpacker", "start"]
@@ -113,7 +113,7 @@ module Smartcloud
113
113
  --build-arg USER_NAME=`id -un` \
114
114
  --build-arg USER_UID=`id -u` \
115
115
  --build-arg DOCKER_GID=`getent group docker | cut -d: -f3` \
116
- #{Smartcloud.config.root_path}/lib/smartcloud/grids/grid-runner")
116
+ #{Smartcloud.config.root_path}/lib/smartcloud/grids/grid-runner", out: File::NULL)
117
117
  puts "done"
118
118
  end
119
119
  end
@@ -123,7 +123,7 @@ module Smartcloud
123
123
  if system("docker image build -t smartcloud/buildpacks/rails \
124
124
  --build-arg USER_UID=`id -u` \
125
125
  --build-arg USER_NAME=`id -un` \
126
- #{Smartcloud.config.root_path}/lib/smartcloud/grids/grid-runner/buildpacks/rails")
126
+ #{Smartcloud.config.root_path}/lib/smartcloud/grids/grid-runner/buildpacks/rails", out: File::NULL)
127
127
  puts "done"
128
128
  end
129
129
  end
@@ -307,26 +307,16 @@ module Smartcloud
307
307
  FileUtils.mkdir_p("#{container_path}/app/public")
308
308
  FileUtils.mkdir_p("#{container_path}/app/node_modules")
309
309
 
310
- # Setup Godfile
311
- unless File.exist? "#{container_path_with_version}/Godfile"
312
- logger.warn "Godfile not detected. Adding a default Godfile. It is recommended to add your own Godfile."
313
- page = <<~"HEREDOC"
314
- God.watch do |w|
315
- w.name = "web"
316
- w.start = "bundle exec puma -C config/puma.rb"
317
- w.behavior(:clean_pid_file)
318
- w.keepalive
319
- end
320
- HEREDOC
321
- system("echo '#{page}' > #{container_path_with_version}/Godfile")
322
- end
323
-
324
310
  # Creating & Starting container
325
- self.stop_app("#{appname}_new")
311
+ container_id = `docker ps -a -q --filter='name=^#{appname}_1$' --filter='status=running'`.chomp
312
+ new_container = container_id.empty? ? "#{appname}_1" : "#{appname}_2"
313
+ old_container = container_id.empty? ? "#{appname}_2" : "#{appname}_1"
314
+
315
+ self.stop_app("#{new_container}")
326
316
  if system("docker create \
327
- --name='#{appname}_new' \
317
+ --name='#{new_container}' \
328
318
  --env-file='#{container_path}/env' \
329
- --expose='5000' \
319
+ --expose='3000' \
330
320
  --volume='#{Smartcloud.config.user_home_path}/.smartcloud/config:#{Smartcloud.config.user_home_path}/.smartcloud/config' \
331
321
  --volume='#{container_path_with_version}:/app' \
332
322
  --volume='#{container_path}/app/vendor/bundle:/app/vendor/bundle' \
@@ -336,17 +326,16 @@ module Smartcloud
336
326
  --network='nginx-network' \
337
327
  smartcloud/buildpacks/rails", out: File::NULL)
338
328
 
339
- system("docker network connect solr-network #{appname}_new")
340
- system("docker network connect mysql-network #{appname}_new")
329
+ system("docker network connect solr-network #{new_container}")
330
+ system("docker network connect mysql-network #{new_container}")
341
331
 
342
- if system("docker start --attach #{appname}_new")
343
- if self.hot_reloaded_app?(appname)
344
- self.clean_up(container_path)
345
- logger.info "Launched Application ... Success."
346
- exit 0
347
- end
332
+ if system("docker start --attach #{new_container}")
333
+ self.stop_app(old_container)
334
+ self.clean_up(container_path)
335
+ logger.info "Launched Application ... Success."
336
+ exit 10
348
337
  else
349
- self.stop_app("#{appname}_new")
338
+ self.stop_app("#{new_container}")
350
339
  end
351
340
  end
352
341
  end
@@ -367,29 +356,6 @@ module Smartcloud
367
356
  end
368
357
  end
369
358
 
370
- # Hot reloading app containers and removing old app container
371
- def self.hot_reloaded_app?(appname)
372
- logger.debug "Hot reloading '#{appname}' containers ..."
373
-
374
- container_id = `docker ps -a -q --filter='name=^#{appname}$'`.chomp
375
- unless container_id.empty?
376
- if system("docker container rename #{appname} #{appname}_old", [:out, :err] => File::NULL)
377
- logger.debug "Container renamed from #{appname} #{appname}_old"
378
- if system("docker container rename #{appname}_new #{appname}", [:out, :err] => File::NULL)
379
- logger.debug "Container renamed from #{appname}_new #{appname}"
380
- self.stop_app("#{appname}_old")
381
- return true
382
- end
383
- end
384
- else
385
- if system("docker container rename #{appname}_new #{appname}", [:out, :err] => File::NULL)
386
- logger.debug "Container renamed from #{appname}_new #{appname}"
387
- return true
388
- end
389
- end
390
- return false
391
- end
392
-
393
359
  def self.load_container_env_vars(container_path)
394
360
  unless File.exist? "#{container_path}/env"
395
361
  logger.fatal "Environment could not be loaded ... Failed."
@@ -406,6 +372,7 @@ module Smartcloud
406
372
  true
407
373
  end
408
374
 
375
+ # Stop Container
409
376
  def self.stop_container(container_name)
410
377
  if Smartcloud::Docker.running?
411
378
  container_id = `docker ps -a -q --filter='name=^#{container_name}$'`.chomp
@@ -10,7 +10,7 @@ while read oldrev newrev refname; do
10
10
  REPOSITORY_BASENAME=$(basename $(readlink -nf "$PWD"/..))
11
11
  fi
12
12
  script --quiet --return --flush --command "runner prereceive $REPOSITORY_BASENAME $REMOTE_USER $oldrev $newrev $refname" /home/$(whoami)/.smartcloud/grids/grid-runner/apps/containers/$REPOSITORY_BASENAME/typescript
13
- if [ "$?" -eq 0 ]; then
13
+ if [ "$?" -eq 10 ]; then
14
14
  exit 0
15
15
  fi
16
16
  exit 1
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smartcloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.206
4
+ version: 0.1.0.beta5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Timeboard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-04 00:00:00.000000000 Z
11
+ date: 2019-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-ssh