Commit Graph

463 Commits

Author SHA1 Message Date
Jonas Eriksson f6a3cb0aff Allow environment variables to be unset
Leaving keys with empty values in YAML will result in the value
ending up being None after parsing the configuration file. This
should result in the variable being imported from the external
environment according to the Compose file version 3 reference.
The resulting action for podman should be an added "-e VAR"
(without =), which is working correctly.

However, when overwriting an external variable by setting it to
e.g. "", the result in docker-compose is that the variable is
unset. For podman, this means adding "-e VAR=". This is not the
case, and this patch does a more strict check to make this case
behave correctly.
2020-10-12 12:45:14 +03:00
Jonas Eriksson 497355fcfb Re-order environment/env_files to match compose
docker-compose reads the 'env_files' and adds the content as
environment values before adding the 'environment' data. This
means that that 'environment' data overrides 'env_files' data.
Emulate this behaviour by re-ordering -e statements to end up
after --env-file statements.

Relevant function in docker-compose can be viewed here:
https://github.com/docker/compose/blob/1.27.4/compose/config/config.py#L694-L697
2020-10-08 23:25:52 +03:00
Florian Bezannier 20a86ea563 add --no-cache arg to build 2020-09-27 14:14:55 +03:00
Florian BEZANNIER 4e2e960106 build specific service 2020-09-27 14:14:55 +03:00
pinfort efba3a1380 support str style configuration for env_file 2020-09-10 00:59:51 +03:00
Johannes Laurin Hörmann 90639769f0 BUG: 'podman stop -t 360.0' called for float, expects int on cli 2020-09-06 12:22:01 +03:00
Johannes Laurin Hörmann 3712b545a9 ENH: add timeout option to podman-compose down, as in https://docs.docker.com/compose/reference/down/ 2020-09-06 12:22:01 +03:00
Chris Hozian 294f8ee37b Hashlib to generate SHA256 instead of MD5 for FIPS
Changed hashlib to generate a SHA256 instead of MD5 in order for
podman-compose to function on systems with FIPS mode enabled.
2020-06-15 22:44:00 +03:00
Michael Scherer 105b129b08 Fix infinite loop
Since we never remove thread from the list of thread, podman-compose
up never return as long as 1 thread is alive.
2020-06-02 23:14:59 +03:00
Muayyad alsadi d3f37112a7 FIXES #181: accept init and init-path 2020-05-22 23:52:48 +03:00
Johannes Laurin Hoermann 7eacf14693 MAINT: resolve https://github.com/containers/podman-compose/pull/180#issuecomment-632722974 2020-05-22 18:09:25 +03:00
Your Name 8cd98ab708 MAINT: extend instead of append 2020-05-22 18:09:25 +03:00
Your Name 047820dbf1 ENH: Added restart policy forwarding to podmann run, compose build args added to up args 2020-05-22 18:09:25 +03:00
Andrej Zieger e7b1382b1b Add --build-arg to 'up' (Fixes #161) 2020-05-22 17:06:38 +03:00
Mohamed Akram 64ed554543 Allow empty default/error value in substitution 2020-05-13 17:54:20 +03:00
Sam Tygier 5915ba345f Catch error when compose file is empty
Also catch cases such as the top element being a list or a string
2020-05-09 20:04:52 +03:00
Muayyad alsadi 1ca6a88ebd target once 2020-04-22 14:44:36 +03:00
Renee Margaret McConahy 7b40079c06 Pass "target" parameter when building an image. 2020-04-22 14:42:32 +03:00
Matt Novenstern f9915c47b4 Check for target property when building images
For multi-stage builds, this allows picking a stage to build up to
2020-04-22 14:36:35 +03:00
Andrej Zieger 19733407b4 Add support for --build-arg option 2020-04-22 14:31:00 +03:00
Bao Trinh e8147e350b Add support for cap_add/cap_drop
Currently, `cap_add` and `cap_drop` are being ignored by podman-compose.
Add the arguments (`--cap-add` and `--cap-drop`, respectively) to
`podman create` when appropriate.
2020-04-22 14:27:33 +03:00
Michael Mraka 7f210ffc43 fixing "Error: unknown flag: --shm_size" 2020-04-21 17:12:11 +03:00
Muayyad alsadi cbed801c0d start detached 2020-04-19 03:53:55 +03:00
Muayyad alsadi 07a2430c41 Fixes #152: validate that podman is useable 2020-04-18 22:18:36 +03:00
Muayyad alsadi 5215782cba Fixes #152: validate that podman is useable 2020-04-18 22:15:55 +03:00
Muayyad alsadi 80e7ba188d resolve 2020-04-18 18:46:23 +03:00
Muayyad alsadi 03cbd2929b pass volumes using -v 2020-04-18 18:39:59 +03:00
Enrico204 796e6a4473 Avoid crash when no services are defined
If no services are defined, podman-compose
crashes as services variable is None,
while the expected behavior might be
an error or the same as docker-compose, which will continue the
execution of the compose file (eg. creating networks, etc).

This commit fixes the crash and allows the program to continue, mimicking
docker-compose behavior.
2020-04-05 10:42:31 +03:00
Adam Jones efcbc75f63 Pass ulimit parameters when building container
When running podman-compose build, pass ulimit arguments from
docker-compose.yml through to podman build.
2020-02-27 17:39:33 +02:00
Christian W 8c3b7e6c54 Added mount option delegated and cached 2019-11-24 10:18:15 +02:00
Thomas Coldrick 27d3cafb7b Add support for privileged option
Adds support for the `privileged` option in docker-compose.yml. This has
been supported in docker-compose since 0.4.0, so it seems reasonable to
add support here.

See https://docs.docker.com/compose/compose-file/#domainname-hostname-ipc-mac_address-privileged-read_only-shm_size-stdin_open-tty-user-working_dir
2019-11-17 13:13:03 +02:00
Anass Ahmed e7a9bd3b70 Show stopped containers in ps 2019-11-10 17:16:02 +02:00
Anass Ahmed ddd582c861 Add support for logs subcommand 2019-11-10 17:15:36 +02:00
Vincent Rischmann 169eaee9b2 Fix override of the run command
If there's no command defined in the arguments, `podman-compose run`
should use the command defined in docker-compose.yml
2019-11-10 17:03:17 +02:00
wampagingwabbits c5f8973bd5 Mixed-case directory names break 'podman create'
The default project_name uses the directory name, but 'podman create' fails if the directory is mixed case.
2019-11-10 17:02:43 +02:00
Muayyad alsadi 12036aa54e FIXES #76: a service extends a service with same name 2019-11-07 19:09:32 +02:00
Muayyad alsadi 0fc864ffbe Merge branch 'devel' of github.com:containers/podman-compose into devel 2019-11-07 18:56:00 +02:00
Muayyad alsadi 7222fdb6e7 exit if not files 2019-11-07 18:55:49 +02:00
Anass Ahmed bb7120f3ff Fix stop command runs start instead 2019-10-26 20:45:19 +02:00
Marius Hoch 7ebbe2efc6 Fix KeyErrors encountered with extended services
Docker compose file used:
https://github.com/wikimedia/mediawiki-extensions-Wikibase/blob/master/view/lib/wikibase-tainted-ref/docker-compose.yml
2019-10-25 16:09:38 +02:00
Simon Li a9216c3980 podman volume inspect mountPoint/Mountpoint
podman version 1.6.1 volume inspect outputs Mountpoint instead of mountPoint
2019-10-05 23:44:38 +03:00
Muayyad alsadi e538852dbe #57: better ps via label 2019-10-05 22:47:04 +03:00
Aric Renzo b1c2b0222b podman_compose.py 2019-10-05 22:38:50 +03:00
Muayyad alsadi 9e0dd2da9d extends with external file 2019-10-05 22:37:14 +03:00
Marius Hoch 72c1992737 Remove never-shared options. 2019-10-05 22:35:05 +03:00
Marius Hoch 3e2381f040 Support extends
https://docs.docker.com/compose/extends/

Doesn't yet support referring to another file.

Needs Python 3.5+ (for merging dicts using **)
2019-10-05 22:35:05 +03:00
Muayyad alsadi dee813a4b6 #47: version command 2019-10-04 20:57:07 +03:00
Muayyad alsadi 9684429157 #52: fix how we split commands 2019-10-04 20:36:30 +03:00
Mario 72697016f9 Fixed get of ulimit tag, according to docker-compose specification 2019-10-04 20:24:36 +03:00
Marius Hoch b369073574 Fix podman-compose run command parsing
This got confused with the main command (up, down, …),
thus leading to:

    cmd = self.commands[cmd_name]
TypeError: unhashable type: 'list'
2019-10-01 13:26:38 +03:00
Lorenzo Benvenuti 62f0cc492c Changed -l flag to --label in order to be compatible with Podman 1.0.2.dev 2019-10-01 13:25:01 +03:00
Aric Renzo c152d28af7 Support for generic container-compose format 2019-09-20 23:33:59 +03:00
Muayyad Alsadi 8e43e69c5b FIX #41: compare original volume name 2019-09-14 00:32:00 +03:00
Kevin Elliott 751aaa87f6 Add support for devices in a service 2019-09-13 22:25:26 +03:00
Tyler Ramer 243bdb688d Add support for setting container ulimit
- supports `ulimit: host` or other single value
- As well as `ulimit: [nofile=5000, nproc=5000]` array
- As well as `ulimit: {nofile: 5000, nproc: 5000}` dict

Authored-by: Tyler Ramer <tramer@pivotal.io>
2019-09-13 22:25:26 +03:00
Muayyad Alsadi f505e499a2 a test showing yaml anchor magic 2019-09-09 00:48:25 +03:00
Muayyad Alsadi 813dc8b149 Merge remote-tracking branch 'origin/master' into devel 2019-09-09 00:18:41 +03:00
Josiah Olson 2e4378f7ad
add string check for cmd line args 2019-09-08 12:57:49 -04:00
Muayyad Alsadi 2a8d430c92 FIXES #35: now support multiple composer files 2019-09-08 02:20:48 +03:00
Muayyad Alsadi f008986633 release 0.1.5 2019-09-03 18:38:57 +03:00
Muayyad Alsadi 7bc6782e0d #34: fix attribute error, fallback to none 2019-09-03 16:13:24 +03:00
Muayyad Alsadi 470f8a3851 update readme and no arguments print help 2019-09-03 00:19:07 +03:00
Artur Barseghyan 6846b27585 Python packaging 2019-08-21 22:45:53 +02:00