diff --git a/podman_compose.py b/podman_compose.py index 62bbcff..78a505e 100755 --- a/podman_compose.py +++ b/podman_compose.py @@ -1526,11 +1526,13 @@ class PodmanCompose: dirname = os.path.realpath(os.path.dirname(filename)) dir_basename = os.path.basename(dirname) self.dirname = dirname - # TODO: remove next line - os.chdir(dirname) - dotenv_path = os.path.join(dirname, args.env_file) - dotenv_dict = dotenv_to_dict(dotenv_path) + # env-file is relative to the CWD + dotenv_dict = {} + if args.env_file: + dotenv_path = os.path.realpath(args.env_file) + dotenv_dict = dotenv_to_dict(dotenv_path) + os.environ.update( { key: value diff --git a/tests/env-file-tests/README.md b/tests/env-file-tests/README.md new file mode 100644 index 0000000..0e4614e --- /dev/null +++ b/tests/env-file-tests/README.md @@ -0,0 +1,9 @@ +running the following commands should always give podman-rocks-123 + +``` +podman-compose -f project/container-compose.yaml --env-file env-files/project-1.env up +``` + +``` +podman-compose -f $(pwd)/project/container-compose.yaml --env-file $(pwd)/env-files/project-1.env up +``` diff --git a/tests/env-file-tests/env-files/project-1.env b/tests/env-file-tests/env-files/project-1.env new file mode 100644 index 0000000..7e00639 --- /dev/null +++ b/tests/env-file-tests/env-files/project-1.env @@ -0,0 +1 @@ +ZZVAR1=podman-rocks-123 \ No newline at end of file diff --git a/tests/env-file-tests/project/container-compose.yaml b/tests/env-file-tests/project/container-compose.yaml new file mode 100644 index 0000000..bd6a6bf --- /dev/null +++ b/tests/env-file-tests/project/container-compose.yaml @@ -0,0 +1,9 @@ +services: + app: + image: busybox + command: ["/bin/busybox", "sh", "-c", "env | grep ZZ"] + tmpfs: + - /run + - /tmp + environment: + ZZVAR1: $ZZVAR1