Keep containers around for quick rollback + restarting
Now need to deal with pruning.
This commit is contained in:
@@ -8,8 +8,12 @@ class Mrsk::Commands::App < Mrsk::Commands::Base
|
||||
"docker pull #{config.absolute_image}"
|
||||
end
|
||||
|
||||
def run
|
||||
"docker run -d --restart unless-stopped --name #{config.service_with_version} #{config.envs} #{config.labels} #{config.absolute_image}"
|
||||
end
|
||||
|
||||
def start
|
||||
"docker run -d --rm --name #{config.service_with_version} #{config.envs} #{config.labels} #{config.absolute_image}"
|
||||
"docker start #{config.service_with_version}"
|
||||
end
|
||||
|
||||
def stop
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
class Mrsk::Commands::Traefik < Mrsk::Commands::Base
|
||||
def start
|
||||
def run
|
||||
"docker run --name traefik " +
|
||||
"--rm -d " +
|
||||
"-d --restart unless-stopped " +
|
||||
"-p 80:80 " +
|
||||
"-v /var/run/docker.sock:/var/run/docker.sock " +
|
||||
"traefik --providers.docker"
|
||||
end
|
||||
|
||||
def start
|
||||
"docker container start traefik"
|
||||
end
|
||||
|
||||
def stop
|
||||
"docker container stop traefik"
|
||||
end
|
||||
|
||||
@@ -17,7 +17,12 @@ namespace :mrsk do
|
||||
on(MRSK_CONFIG.servers) { execute app.pull }
|
||||
end
|
||||
|
||||
desc "Start app on servers"
|
||||
desc "Run app on servers"
|
||||
task :run do
|
||||
on(MRSK_CONFIG.servers) { execute app.run }
|
||||
end
|
||||
|
||||
desc "Start existing app on servers"
|
||||
task :start do
|
||||
on(MRSK_CONFIG.servers) { execute app.start }
|
||||
end
|
||||
@@ -27,7 +32,7 @@ namespace :mrsk do
|
||||
on(MRSK_CONFIG.servers) { execute app.stop, raise_on_non_zero_exit: false }
|
||||
end
|
||||
|
||||
desc "Restart app on servers"
|
||||
desc "Start app on servers (use VERSION=<git-hash> to designate which version)"
|
||||
task restart: %i[ stop start ]
|
||||
|
||||
desc "Display information about app containers"
|
||||
|
||||
@@ -2,10 +2,12 @@ require_relative "setup"
|
||||
|
||||
namespace :mrsk do
|
||||
desc "Deploy app for the first time to a fresh server"
|
||||
task fresh: [ "server:bootstrap", "registry:login", "app:deliver", "traefik:start", "app:start" ]
|
||||
task fresh: [ "server:bootstrap", "registry:login", "app:deliver", "traefik:start", "app:stop", "app:run" ]
|
||||
|
||||
desc "Push the latest version of the app, ensure Traefik is running, then restart app"
|
||||
task deploy: [ "registry:login", "app:deliver", "traefik:start", "app:restart" ]
|
||||
task deploy: [ "registry:login", "app:deliver", "traefik:start", "app:stop", "app:run" ]
|
||||
|
||||
task rollback: [ "app:restart" ]
|
||||
|
||||
desc "Display information about Traefik and app containers"
|
||||
task info: [ "traefik:info", "app:info" ]
|
||||
|
||||
Reference in New Issue
Block a user