mirror of
https://github.com/containers/podman-compose.git
synced 2025-01-07 14:39:53 +01:00
Merge pull request #949 from mokibit/multiline-env-file
Add support for multi-line environment files
This commit is contained in:
commit
d905a7c638
@ -1072,7 +1072,11 @@ async def container_to_args(compose, cnt, detached=True):
|
||||
if not required:
|
||||
continue
|
||||
raise ValueError("Env file at {} does not exist".format(i))
|
||||
podman_args.extend(["--env-file", i])
|
||||
dotenv_dict = {}
|
||||
dotenv_dict = dotenv_to_dict(i)
|
||||
env = norm_as_list(dotenv_dict)
|
||||
for e in env:
|
||||
podman_args.extend(["-e", e])
|
||||
env = norm_as_list(cnt.get("environment", {}))
|
||||
for e in env:
|
||||
podman_args.extend(["-e", e])
|
||||
|
@ -251,8 +251,12 @@ class TestContainerToArgs(unittest.IsolatedAsyncioTestCase):
|
||||
[
|
||||
"--name=project_name_service_name1",
|
||||
"-d",
|
||||
"--env-file",
|
||||
env_file,
|
||||
"-e",
|
||||
"ZZVAR1=podman-rocks-123",
|
||||
"-e",
|
||||
"ZZVAR2=podman-rocks-124",
|
||||
"-e",
|
||||
"ZZVAR3=podman-rocks-125",
|
||||
"--network=bridge",
|
||||
"--network-alias=service_name",
|
||||
"busybox",
|
||||
@ -268,7 +272,7 @@ class TestContainerToArgs(unittest.IsolatedAsyncioTestCase):
|
||||
with self.assertRaises(ValueError):
|
||||
await container_to_args(c, cnt)
|
||||
|
||||
async def test_env_file_str_arr(self):
|
||||
async def test_env_file_str_array_one_path(self):
|
||||
c = create_compose_mock()
|
||||
|
||||
cnt = get_minimal_container()
|
||||
@ -281,8 +285,42 @@ class TestContainerToArgs(unittest.IsolatedAsyncioTestCase):
|
||||
[
|
||||
"--name=project_name_service_name1",
|
||||
"-d",
|
||||
"--env-file",
|
||||
env_file,
|
||||
"-e",
|
||||
"ZZVAR1=podman-rocks-123",
|
||||
"-e",
|
||||
"ZZVAR2=podman-rocks-124",
|
||||
"-e",
|
||||
"ZZVAR3=podman-rocks-125",
|
||||
"--network=bridge",
|
||||
"--network-alias=service_name",
|
||||
"busybox",
|
||||
],
|
||||
)
|
||||
|
||||
async def test_env_file_str_array_two_paths(self):
|
||||
c = create_compose_mock()
|
||||
|
||||
cnt = get_minimal_container()
|
||||
env_file = path.realpath('tests/env-file-tests/env-files/project-1.env')
|
||||
env_file_2 = path.realpath('tests/env-file-tests/env-files/project-2.env')
|
||||
cnt['env_file'] = [env_file, env_file_2]
|
||||
|
||||
args = await container_to_args(c, cnt)
|
||||
self.assertEqual(
|
||||
args,
|
||||
[
|
||||
"--name=project_name_service_name1",
|
||||
"-d",
|
||||
"-e",
|
||||
"ZZVAR1=podman-rocks-123",
|
||||
"-e",
|
||||
"ZZVAR2=podman-rocks-124",
|
||||
"-e",
|
||||
"ZZVAR3=podman-rocks-125",
|
||||
"-e",
|
||||
"ZZVAR1=podman-rocks-223",
|
||||
"-e",
|
||||
"ZZVAR2=podman-rocks-224",
|
||||
"--network=bridge",
|
||||
"--network-alias=service_name",
|
||||
"busybox",
|
||||
@ -302,14 +340,27 @@ class TestContainerToArgs(unittest.IsolatedAsyncioTestCase):
|
||||
[
|
||||
"--name=project_name_service_name1",
|
||||
"-d",
|
||||
"--env-file",
|
||||
env_file,
|
||||
"-e",
|
||||
"ZZVAR1=podman-rocks-123",
|
||||
"-e",
|
||||
"ZZVAR2=podman-rocks-124",
|
||||
"-e",
|
||||
"ZZVAR3=podman-rocks-125",
|
||||
"--network=bridge",
|
||||
"--network-alias=service_name",
|
||||
"busybox",
|
||||
],
|
||||
)
|
||||
|
||||
async def test_env_file_obj_required_non_existent_path(self):
|
||||
c = create_compose_mock()
|
||||
|
||||
cnt = get_minimal_container()
|
||||
cnt['env_file'] = {'path': 'not-exists', 'required': True}
|
||||
|
||||
with self.assertRaises(ValueError):
|
||||
await container_to_args(c, cnt)
|
||||
|
||||
async def test_env_file_obj_optional(self):
|
||||
c = create_compose_mock()
|
||||
|
||||
|
@ -1 +1,3 @@
|
||||
ZZVAR1=podman-rocks-123
|
||||
ZZVAR2=podman-rocks-124
|
||||
ZZVAR3=podman-rocks-125
|
||||
|
2
tests/env-file-tests/env-files/project-2.env
Normal file
2
tests/env-file-tests/env-files/project-2.env
Normal file
@ -0,0 +1,2 @@
|
||||
ZZVAR1=podman-rocks-223
|
||||
ZZVAR2=podman-rocks-224
|
Loading…
Reference in New Issue
Block a user