Compare commits

..

No commits in common. "eb6d63a5336934f3c0ded0e7cc866e684344574f" and "d0e2a1a494b7c772b97b37929d6fccacbd03c22d" have entirely different histories.

3 changed files with 20 additions and 2 deletions

View File

@ -91,7 +91,8 @@ module Funko
end end
if env.params.query.fetch("format", "json") == "html" if env.params.query.fetch("format", "json") == "html"
render "src/views/funkos.ecr" else render "src/views/funkos.ecr"
else
result.to_json result.to_json
end end
end end

View File

@ -1,5 +1,4 @@
require "docr" require "docr"
require "funko"
require "kemal" require "kemal"
module Proxy module Proxy

View File

@ -166,6 +166,7 @@ module Funko
end end
# Return a list of image IDs for this funko, most recent first # Return a list of image IDs for this funko, most recent first
# FIXME: use self.images and add filters
def image_history def image_history
docker_api = Docr::API.new(Docr::Client.new) docker_api = Docr::API.new(Docr::Client.new)
begin begin
@ -206,6 +207,23 @@ module Funko
end end
end end
# Start exited container with the newer image
# or unpause paused container
def start
if self.exited?
docker_api = Docr::API.new(Docr::Client.new)
images = self.image_history
exited = self.containers.select { |container|
container.@state == "exited"
}.sort! { |i, j|
(images.index(j.@image_id) || 9999) <=> (images.index(i.@image_id) || 9999)
}
docker_api.containers.restart(exited[0].@id) unless exited.empty?
elsif self.paused?
self.unpause
end
end
# Stop container with the newer image # Stop container with the newer image
def stop def stop
docker_api = Docr::API.new(Docr::Client.new) docker_api = Docr::API.new(Docr::Client.new)