Remove images of the same name before pulling a new one
Or you'll end up with untagged dupes.
This commit is contained in:
@@ -30,6 +30,7 @@ class Mrsk::Cli::Build < Mrsk::Cli::Base
|
|||||||
def pull
|
def pull
|
||||||
on(MRSK.hosts) do
|
on(MRSK.hosts) do
|
||||||
execute *MRSK.auditor.record("Pulled image with version #{MRSK.version}"), verbosity: :debug
|
execute *MRSK.auditor.record("Pulled image with version #{MRSK.version}"), verbosity: :debug
|
||||||
|
execute *MRSK.builder.clean, raise_on_non_zero_exit: false
|
||||||
execute *MRSK.builder.pull
|
execute *MRSK.builder.pull
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
class Mrsk::Commands::Builder < Mrsk::Commands::Base
|
class Mrsk::Commands::Builder < Mrsk::Commands::Base
|
||||||
delegate :create, :remove, :push, :pull, :info, to: :target
|
delegate :create, :remove, :push, :clean, :pull, :info, to: :target
|
||||||
|
|
||||||
def name
|
def name
|
||||||
target.class.to_s.remove("Mrsk::Commands::Builder::").underscore
|
target.class.to_s.remove("Mrsk::Commands::Builder::").underscore
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
class Mrsk::Commands::Builder::Base < Mrsk::Commands::Base
|
class Mrsk::Commands::Builder::Base < Mrsk::Commands::Base
|
||||||
delegate :argumentize, to: Mrsk::Utils
|
delegate :argumentize, to: Mrsk::Utils
|
||||||
|
|
||||||
|
def clean
|
||||||
|
docker :image, :rm, "--force", config.absolute_image
|
||||||
|
end
|
||||||
|
|
||||||
def pull
|
def pull
|
||||||
docker :pull, config.absolute_image
|
docker :pull, config.absolute_image
|
||||||
end
|
end
|
||||||
|
|||||||
15
test/cli/build_test.rb
Normal file
15
test/cli/build_test.rb
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
require_relative "cli_test_case"
|
||||||
|
|
||||||
|
class CliBuildTest < CliTestCase
|
||||||
|
test "pull" do
|
||||||
|
run_command("pull").tap do |output|
|
||||||
|
assert_match /docker image rm --force dhh\/app:999/, output
|
||||||
|
assert_match /docker pull dhh\/app:999/, output
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def run_command(*command)
|
||||||
|
stdouted { Mrsk::Cli::Build.start([*command, "-c", "test/fixtures/deploy_with_accessories.yml"]) }
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user