mirror of
https://github.com/containers/podman-compose.git
synced 2025-05-28 14:17:50 +02:00
Merge pull request #1180 from knarfS/add_rmi_arg
Add rmi argument for down command
This commit is contained in:
commit
d6b8476573
1
newsfragments/add-rmi-argument.feature
Normal file
1
newsfragments/add-rmi-argument.feature
Normal file
@ -0,0 +1 @@
|
||||
- Add the `--rmi` argument to the `down` command to remove images.
|
@ -2786,7 +2786,7 @@ async def compose_up(compose: PodmanCompose, args):
|
||||
diff_hashes = [i for i in hashes if i and i != compose.yaml_hash]
|
||||
if args.force_recreate or len(diff_hashes):
|
||||
log.info("recreating: ...")
|
||||
down_args = argparse.Namespace(**dict(args.__dict__, volumes=False))
|
||||
down_args = argparse.Namespace(**dict(args.__dict__, volumes=False, rmi=None))
|
||||
await compose.commands["down"](compose, down_args)
|
||||
log.info("recreating: done\n\n")
|
||||
# args.no_recreate disables check for changes (which is not implemented)
|
||||
@ -2826,7 +2826,7 @@ async def compose_up(compose: PodmanCompose, args):
|
||||
log.info("Caught SIGINT or Ctrl+C, shutting down...")
|
||||
try:
|
||||
log.info("Shutting down gracefully, please wait...")
|
||||
down_args = argparse.Namespace(**dict(args.__dict__, volumes=False))
|
||||
down_args = argparse.Namespace(**dict(args.__dict__, volumes=False, rmi=None))
|
||||
await compose.commands["down"](compose, down_args)
|
||||
except Exception as e:
|
||||
log.error("Error during shutdown: %s", e)
|
||||
@ -2915,7 +2915,6 @@ async def compose_down(compose: PodmanCompose, args):
|
||||
containers = list(reversed(compose.containers))
|
||||
|
||||
down_tasks = []
|
||||
|
||||
for cnt in containers:
|
||||
if cnt["_service"] in excluded:
|
||||
continue
|
||||
@ -2936,8 +2935,10 @@ async def compose_down(compose: PodmanCompose, args):
|
||||
if cnt["_service"] in excluded:
|
||||
continue
|
||||
await compose.podman.run([], "rm", [cnt["name"]])
|
||||
|
||||
orphaned_images = set()
|
||||
if args.remove_orphans:
|
||||
names = (
|
||||
orphaned_containers = (
|
||||
(
|
||||
await compose.podman.output(
|
||||
[],
|
||||
@ -2947,13 +2948,15 @@ async def compose_down(compose: PodmanCompose, args):
|
||||
f"label=io.podman.compose.project={compose.project_name}",
|
||||
"-a",
|
||||
"--format",
|
||||
"{{ .Names }}",
|
||||
"{{ .Image }} {{ .Names }}",
|
||||
],
|
||||
)
|
||||
)
|
||||
.decode("utf-8")
|
||||
.splitlines()
|
||||
)
|
||||
orphaned_images = {item.split()[0] for item in orphaned_containers}
|
||||
names = {item.split()[1] for item in orphaned_containers}
|
||||
for name in names:
|
||||
await compose.podman.run([], "stop", [*podman_args, name])
|
||||
for name in names:
|
||||
@ -2969,6 +2972,17 @@ async def compose_down(compose: PodmanCompose, args):
|
||||
if volume_name in vol_names_to_keep:
|
||||
continue
|
||||
await compose.podman.run([], "volume", ["rm", volume_name])
|
||||
if args.rmi:
|
||||
images_to_remove = set()
|
||||
for cnt in containers:
|
||||
if cnt["_service"] in excluded:
|
||||
continue
|
||||
if args.rmi == "local" and not is_local(cnt):
|
||||
continue
|
||||
images_to_remove.add(cnt["image"])
|
||||
images_to_remove.update(orphaned_images)
|
||||
log.debug("images to remove: %s", images_to_remove)
|
||||
await compose.podman.run([], "rmi", ["--ignore", "--force"] + list(images_to_remove))
|
||||
|
||||
if excluded:
|
||||
return
|
||||
@ -3472,6 +3486,15 @@ def compose_down_parse(parser):
|
||||
action="store_true",
|
||||
help="Remove containers for services not defined in the Compose file.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--rmi",
|
||||
type=str,
|
||||
nargs="?",
|
||||
const="all",
|
||||
choices=["local", "all"],
|
||||
help="Remove images used by services. `local` remove only images that don't have a "
|
||||
"custom tag. (`local` or `all`)",
|
||||
)
|
||||
|
||||
|
||||
@cmd_parse(podman_compose, "run")
|
||||
|
6
tests/integration/up_down/Dockerfile
Normal file
6
tests/integration/up_down/Dockerfile
Normal file
@ -0,0 +1,6 @@
|
||||
FROM docker.io/library/debian:bookworm-slim
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
dumb-init \
|
||||
&& apt-get autoremove
|
||||
RUN mkdir -p /mnt/test/
|
1
tests/integration/up_down/__init__.py
Normal file
1
tests/integration/up_down/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
|
12
tests/integration/up_down/docker-compose-orphans.yml
Normal file
12
tests/integration/up_down/docker-compose-orphans.yml
Normal file
@ -0,0 +1,12 @@
|
||||
version: "3"
|
||||
volumes:
|
||||
web1_vol:
|
||||
web2_vol:
|
||||
services:
|
||||
web1:
|
||||
image: podman-compose-up-down-test
|
||||
build: .
|
||||
hostname: web1
|
||||
command: ["dumb-init", "sleep", "infinity"]
|
||||
volumes:
|
||||
- web1_vol:/mnt/test/
|
19
tests/integration/up_down/docker-compose.yml
Normal file
19
tests/integration/up_down/docker-compose.yml
Normal file
@ -0,0 +1,19 @@
|
||||
version: "3"
|
||||
volumes:
|
||||
web1_vol:
|
||||
web2_vol:
|
||||
services:
|
||||
web1:
|
||||
image: podman-compose-up-down-test
|
||||
build: .
|
||||
hostname: web1
|
||||
command: ["dumb-init", "sleep", "infinity"]
|
||||
volumes:
|
||||
- web1_vol:/mnt/test/
|
||||
web2:
|
||||
image: docker.io/library/debian:up-down-test
|
||||
hostname: web2
|
||||
command: ["sleep", "infinity"]
|
||||
volumes:
|
||||
- web2_vol:/mnt/test/
|
||||
|
559
tests/integration/up_down/test_podman_compose_up_down.py
Normal file
559
tests/integration/up_down/test_podman_compose_up_down.py
Normal file
@ -0,0 +1,559 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
"""
|
||||
test_podman_compose_up_down.py
|
||||
|
||||
Tests the podman compose up and down commands used to create and remove services.
|
||||
"""
|
||||
|
||||
import os
|
||||
import unittest
|
||||
|
||||
from tests.integration.test_utils import RunSubprocessMixin
|
||||
from tests.integration.test_utils import podman_compose_path
|
||||
from tests.integration.test_utils import test_path
|
||||
|
||||
|
||||
class TestPodmanCompose(unittest.TestCase, RunSubprocessMixin):
|
||||
up_cmd = [
|
||||
"coverage",
|
||||
"run",
|
||||
podman_compose_path(),
|
||||
"-f",
|
||||
os.path.join(test_path(), "up_down", "docker-compose.yml"),
|
||||
"up",
|
||||
"-d",
|
||||
"--force-recreate",
|
||||
]
|
||||
|
||||
def setUp(self):
|
||||
"""
|
||||
Retag the debian image before each test to no mess with the other integration tests when
|
||||
testing the `--rmi` argument
|
||||
"""
|
||||
tag_cmd = [
|
||||
"podman",
|
||||
"tag",
|
||||
"docker.io/library/debian:bookworm-slim",
|
||||
"docker.io/library/debian:up-down-test",
|
||||
]
|
||||
self.run_subprocess_assert_returncode(tag_cmd)
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
"""
|
||||
Ensures that the images that were created for this tests will be removed
|
||||
"""
|
||||
rmi_cmd = [
|
||||
"podman",
|
||||
"rmi",
|
||||
"--force",
|
||||
"--ignore",
|
||||
"podman-compose-up-down-test",
|
||||
"docker.io/library/debian:up-down-test",
|
||||
]
|
||||
cls().run_subprocess_assert_returncode(rmi_cmd)
|
||||
|
||||
def test_down(self):
|
||||
down_cmd = [
|
||||
"coverage",
|
||||
"run",
|
||||
podman_compose_path(),
|
||||
"-f",
|
||||
os.path.join(test_path(), "up_down", "docker-compose.yml"),
|
||||
"down",
|
||||
"--timeout",
|
||||
"0",
|
||||
]
|
||||
|
||||
try:
|
||||
self.run_subprocess_assert_returncode(self.up_cmd)
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web1_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web2_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web1_vol",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web2_vol",
|
||||
])
|
||||
finally:
|
||||
self.run_subprocess_assert_returncode(down_cmd)
|
||||
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web1_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web2_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web1_vol"])
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web2_vol"])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"image",
|
||||
"exists",
|
||||
"podman-compose-up-down-test",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"image",
|
||||
"exists",
|
||||
"docker.io/library/debian:up-down-test",
|
||||
])
|
||||
|
||||
def test_down_with_volumes(self):
|
||||
down_cmd = [
|
||||
"coverage",
|
||||
"run",
|
||||
podman_compose_path(),
|
||||
"-f",
|
||||
os.path.join(test_path(), "up_down", "docker-compose.yml"),
|
||||
"down",
|
||||
"--volumes",
|
||||
"--timeout",
|
||||
"0",
|
||||
]
|
||||
|
||||
try:
|
||||
self.run_subprocess_assert_returncode(self.up_cmd)
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web1_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web2_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web1_vol",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web2_vol",
|
||||
])
|
||||
finally:
|
||||
self.run_subprocess_assert_returncode(down_cmd)
|
||||
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web1_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web2_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web1_vol"], 1)
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web2_vol"], 1)
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"image",
|
||||
"exists",
|
||||
"podman-compose-up-down-test",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"image",
|
||||
"exists",
|
||||
"docker.io/library/debian:up-down-test",
|
||||
])
|
||||
|
||||
def test_down_without_orphans(self):
|
||||
down_cmd = [
|
||||
"coverage",
|
||||
"run",
|
||||
podman_compose_path(),
|
||||
"-f",
|
||||
os.path.join(test_path(), "up_down", "docker-compose-orphans.yml"),
|
||||
"down",
|
||||
"--volumes",
|
||||
"--timeout",
|
||||
"0",
|
||||
]
|
||||
|
||||
try:
|
||||
self.run_subprocess_assert_returncode(self.up_cmd)
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web1_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web2_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web1_vol",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web2_vol",
|
||||
])
|
||||
finally:
|
||||
self.run_subprocess_assert_returncode(down_cmd)
|
||||
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web1_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(["podman", "container", "exists", "up_down_web2_1"])
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web1_vol"], 1)
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web2_vol"])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"image",
|
||||
"exists",
|
||||
"podman-compose-up-down-test",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"image",
|
||||
"exists",
|
||||
"docker.io/library/debian:up-down-test",
|
||||
])
|
||||
|
||||
# Cleanup orphaned container
|
||||
down_all_cmd = [
|
||||
"coverage",
|
||||
"run",
|
||||
podman_compose_path(),
|
||||
"-f",
|
||||
os.path.join(test_path(), "up_down", "docker-compose.yml"),
|
||||
"down",
|
||||
"--volumes",
|
||||
"--timeout",
|
||||
"0",
|
||||
]
|
||||
self.run_subprocess_assert_returncode(down_all_cmd)
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web2_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web2_vol"], 1)
|
||||
|
||||
def test_down_with_orphans(self):
|
||||
down_cmd = [
|
||||
"coverage",
|
||||
"run",
|
||||
podman_compose_path(),
|
||||
"-f",
|
||||
os.path.join(test_path(), "up_down", "docker-compose-orphans.yml"),
|
||||
"down",
|
||||
"--volumes",
|
||||
"--remove-orphans",
|
||||
"--timeout",
|
||||
"0",
|
||||
]
|
||||
|
||||
try:
|
||||
self.run_subprocess_assert_returncode(self.up_cmd)
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web1_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web2_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web1_vol",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web2_vol",
|
||||
])
|
||||
finally:
|
||||
self.run_subprocess_assert_returncode(down_cmd)
|
||||
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web1_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web2_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web1_vol"], 1)
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web2_vol"], 1)
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"image",
|
||||
"exists",
|
||||
"podman-compose-up-down-test",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"image",
|
||||
"exists",
|
||||
"docker.io/library/debian:up-down-test",
|
||||
])
|
||||
|
||||
def test_down_with_images_default(self):
|
||||
down_cmd = [
|
||||
"coverage",
|
||||
"run",
|
||||
podman_compose_path(),
|
||||
"-f",
|
||||
os.path.join(test_path(), "up_down", "docker-compose.yml"),
|
||||
"down",
|
||||
"--rmi",
|
||||
"--timeout",
|
||||
"0",
|
||||
]
|
||||
|
||||
try:
|
||||
self.run_subprocess_assert_returncode(self.up_cmd)
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web1_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web2_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web1_vol",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web2_vol",
|
||||
])
|
||||
finally:
|
||||
self.run_subprocess_assert_returncode(down_cmd)
|
||||
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web1_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web2_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web1_vol"])
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web2_vol"])
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "image", "exists", "podman-compose-up-down-test"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "image", "exists", "docker.io/library/debian:up-down-test"], 1
|
||||
)
|
||||
|
||||
def test_down_with_images_all(self):
|
||||
down_cmd = [
|
||||
"coverage",
|
||||
"run",
|
||||
podman_compose_path(),
|
||||
"-f",
|
||||
os.path.join(test_path(), "up_down", "docker-compose.yml"),
|
||||
"down",
|
||||
"--rmi",
|
||||
"all",
|
||||
"--timeout",
|
||||
"0",
|
||||
]
|
||||
|
||||
try:
|
||||
self.run_subprocess_assert_returncode(self.up_cmd)
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web1_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web2_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web1_vol",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web2_vol",
|
||||
])
|
||||
finally:
|
||||
self.run_subprocess_assert_returncode(down_cmd)
|
||||
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web1_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web2_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web1_vol"])
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web2_vol"])
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "image", "exists", "podman-compose-up-down-test"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "image", "exists", "docker.io/library/debian:up-down-test"], 1
|
||||
)
|
||||
|
||||
def test_down_with_images_all_and_orphans(self):
|
||||
down_cmd = [
|
||||
"coverage",
|
||||
"run",
|
||||
podman_compose_path(),
|
||||
"-f",
|
||||
os.path.join(test_path(), "up_down", "docker-compose-orphans.yml"),
|
||||
"down",
|
||||
"--volumes",
|
||||
"--remove-orphans",
|
||||
"--rmi",
|
||||
"all",
|
||||
"--timeout",
|
||||
"0",
|
||||
]
|
||||
|
||||
try:
|
||||
self.run_subprocess_assert_returncode(self.up_cmd)
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web1_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web2_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web1_vol",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web2_vol",
|
||||
])
|
||||
finally:
|
||||
self.run_subprocess_assert_returncode(down_cmd)
|
||||
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web1_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web2_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web1_vol"], 1)
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web2_vol"], 1)
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "image", "exists", "podman-compose-up-down-test"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "image", "exists", "docker.io/library/debian:up-down-test"], 1
|
||||
)
|
||||
|
||||
def test_down_with_images_local(self):
|
||||
down_cmd = [
|
||||
"coverage",
|
||||
"run",
|
||||
podman_compose_path(),
|
||||
"-f",
|
||||
os.path.join(test_path(), "up_down", "docker-compose.yml"),
|
||||
"down",
|
||||
"--rmi",
|
||||
"local",
|
||||
"--timeout",
|
||||
"0",
|
||||
]
|
||||
|
||||
try:
|
||||
self.run_subprocess_assert_returncode(self.up_cmd)
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web1_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"container",
|
||||
"exists",
|
||||
"up_down_web2_1",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web1_vol",
|
||||
])
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"volume",
|
||||
"exists",
|
||||
"up_down_web2_vol",
|
||||
])
|
||||
finally:
|
||||
self.run_subprocess_assert_returncode(down_cmd)
|
||||
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web1_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "container", "exists", "up_down_web2_1"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web1_vol"])
|
||||
self.run_subprocess_assert_returncode(["podman", "volume", "exists", "up_down_web2_vol"])
|
||||
self.run_subprocess_assert_returncode(
|
||||
["podman", "image", "exists", "podman-compose-up-down-test"], 1
|
||||
)
|
||||
self.run_subprocess_assert_returncode([
|
||||
"podman",
|
||||
"image",
|
||||
"exists",
|
||||
"docker.io/library/debian:up-down-test",
|
||||
])
|
Loading…
x
Reference in New Issue
Block a user