Commit Graph

245 Commits

Author SHA1 Message Date
Muayyad alsadi
2803046ac3 add awx 17 example 2021-12-21 22:57:45 +02:00
Muayyad alsadi
d1768c1d9d FIXES #377: down -v 2021-12-21 22:57:45 +02:00
Muayyad alsadi
820ea012c5 FIXES #: U mount propagation option 2021-12-21 22:57:45 +02:00
Muayyad alsadi
5ba96a1082 #365: 'Namespace' object has no attribute 'volumes' 2021-12-21 22:57:45 +02:00
Avi Duda
6c1ccfcefa Add missing arguments to the log (latest, names, since, until) 2021-12-14 11:35:30 +02:00
Avi Duda
724d2fd18c Support viewing all logs 2021-12-14 11:35:30 +02:00
Avi Duda
3e940579d9 Support for starting/stopping/restarting all services
Reverse services when stopping or restarting
2021-12-14 11:35:30 +02:00
Muayyad alsadi
af1697e9bf FIXES #288: extenal as dict 2021-12-13 03:25:17 +02:00
Muayyad alsadi
e62f1a54af FIXES #288: extenal as dict 2021-12-13 01:21:34 +02:00
Muayyad alsadi
179f9ab0e3 FIXES #288: do not create external network 2021-12-13 00:24:23 +02:00
Muayyad alsadi
dd6b1ee88c FIXES #288: do not create external network 2021-12-13 00:21:53 +02:00
Muayyad alsadi
9a8dc4ca17 release 1.0.2 2021-12-11 02:06:10 +02:00
Mark Stosberg
6b5f62d693 Fixes #199: seccomp:unconfined 2021-12-11 01:50:40 +02:00
Muayyad alsadi
3782b4ab84 FIXES #371: respect COMPOSE_FILE env 2021-12-10 23:26:13 +02:00
Muayyad alsadi
95e07e27f0 FIXES #185: creates dirs 2021-12-10 22:46:22 +02:00
Muayyad alsadi
a3123ce480 #222: normalize basedir using os.path.realpath 2021-12-10 22:27:00 +02:00
Muayyad alsadi
02f78dc3d7 FIXES #333: when volumes are merged, remove duplicates 2021-12-10 02:06:43 +02:00
Muayyad alsadi
8cd97682d0 FIXES #370: bug-for-bug hanlding of .env 2021-12-10 01:01:45 +02:00
Muayyad alsadi
85244272ff FIXES #368: parse depends_on of type dict 2021-12-09 16:18:52 +02:00
Muayyad alsadi
30cfe2317c set version 2021-12-09 16:12:59 +02:00
Tim Elliott
7fda1cc835 fix AttributeError when running a one-off command
Without this, I get errors when running "podman-compose -p podname run".
2021-12-09 16:11:04 +02:00
Luiz Carvalho
5f40f4df31 Remove named volumes during "down -v"
Fixes containers#105

Signed-off-by: Luiz Carvalho <lucarval@redhat.com>
2021-12-09 16:09:59 +02:00
Muayyad alsadi
80a47a13d5 add network-alias 2021-11-21 12:35:13 +02:00
Muayyad alsadi
872404c3a7 initial work on CNI podman network create 2021-11-21 01:23:29 +02:00
Muayyad alsadi
1f989ed133 FIXES #356: respect pull_policy 2021-11-16 11:12:08 +02:00
Muayyad alsadi
66ce2a34f5 release 0.1.8 2021-11-15 00:27:03 +02:00
Muayyad alsadi
d8e11d59ef FIXES #312: run starts dependencies 2021-11-14 01:37:22 +02:00
Muayyad alsadi
72c3572123 #289: exit code and test for that 2021-11-14 00:59:41 +02:00
Muayyad alsadi
c187e88eaf up and down specific containers 2021-11-14 00:28:43 +02:00
Muayyad alsadi
31b8bb477d simpler passing of env 2021-11-14 00:00:08 +02:00
Anatoli Babenia
f177712585 Fix up arguments parsing
These is already parsed here
502d7cc206/podman_compose.py (L1644)
2021-11-13 23:53:57 +02:00
Muayyad alsadi
ae3deb19dc #355: fix dry run 2021-11-13 13:08:32 +02:00
Muayyad alsadi
117b7fbb9e command list of strings 2021-11-11 17:52:02 +02:00
Muayyad alsadi
5acb9978eb command list of strings 2021-11-11 17:47:26 +02:00
Muayyad alsadi
dcb038ef3a remove tabs 2021-11-11 14:27:30 +02:00
Muayyad alsadi
a2fef56b07 FIXES #353: down in reverse order 2021-11-11 11:32:24 +02:00
Muayyad alsadi
c753b8e2cf FIXES #167: support ContainerFile 2021-11-11 11:27:33 +02:00
Muayyad alsadi
c9486c9f3b #115: handle string entrypoint 2021-10-25 00:14:19 +03:00
Muayyad alsadi
f2aeaba0d6 #348: conditional --infra-name 2021-10-24 17:35:36 +03:00
Muayyad alsadi
2d80e435dd remove print 2021-10-14 02:12:28 +03:00
Muayyad alsadi
d1a77defcd external name 2021-10-14 02:11:45 +03:00
Muayyad alsadi
c49f0700c8 volumes with names 2021-10-14 01:30:44 +03:00
Igor Kuznetsov
6d69b7c74c Add support external volumes
# docker-compose.yml
version: '3'
services:
  test:
     volumes:
        - data:/data
volumes:
  data:
     name: some
     external: true
2021-10-14 00:12:06 +03:00
Muayyad alsadi
ab135030c8 add support for long port publishing format 2021-10-10 00:43:01 +03:00
Muayyad alsadi
069018c5b1 #342: set infra container name 2021-10-04 14:40:54 +03:00
Muayyad alsadi
b6a9f8efd4 #335: report version with -v 2021-09-09 00:33:07 +03:00
Sam
dc0ac0d03c docs: added the transform_policy default and description 2021-09-06 10:02:13 +03:00
Muayyad alsadi
502d7cc206 #327: accept ports as string 2021-08-26 12:37:14 +03:00
kozlowskim6
e85d79d4f4 added cpu_shares flag for v2 2021-08-18 11:56:12 +03:00
kozlowskim6
bfb57b9ba2 added cpu_shares flag for v2 2021-08-18 11:56:12 +03:00
Gerhard Bräunlich
2d0aad6692 Also pull images with a build section 2021-08-05 15:07:05 +03:00
Gerhard Bräunlich
ff5b9f1663 Support for logging 2021-07-27 14:54:36 +03:00
Sam
62aa337f17 feat(secrets): Add support for secrets
Adds support for -
- (1) Declared secrets with the file location.
- (2) Declared secrets with file location, mounted as a different named secret.
- (3) Declared secrets with file location, mounted at arbitrary location.
- (4) External secrets (type=mount), mounted as original secret name.
- (5) External secrets (type=mount), mounted as original secret name, with specified uid, gid and mode.
2021-07-24 02:29:32 +03:00
Paul Wilde
3836094c64 Update podman_compose.py
it would be nice to use "podman-compose.yml" as a compose file name. compose.yml is useful, but I prefer the clarity of having the "podman" prefix.
2021-07-17 16:18:40 +03:00
Muayyad alsadi
d97a20d563 #308: fix environment 2021-06-23 18:04:13 +03:00
Muayyad alsadi
f417c9ab8c #120: extend not add 2021-06-22 23:52:24 +03:00
Muayyad alsadi
5ed5528294 FIXES #120: parse mem and cpu limits 2021-06-22 23:48:05 +03:00
Muayyad alsadi
3d6ca3c204 FIXES #120: parse mem and cpu limits 2021-06-22 23:30:22 +03:00
Stefan Weil
6e3383de72 Convert numeric command arguments to string (fixes #77)
The input argument cmd_args is a list which may contain numeric elements.

Convert all elements to strings before passing them to functions which
expect str data type.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-06-16 22:19:42 +03:00
Stefan Weil
8ef7587aa1 Fix some typos (found by codespell)
Signed-off-by: Stefan Weil <sw@weilnetz.de>
2021-06-16 22:17:28 +03:00
Mattias Giese
039fe30a70 Make sure port entries are converted to strings
Otherwise concatenating all parameters might fail with a TypeError
2021-05-28 21:10:55 +03:00
Robert Hensing
62d2024fee Add stop_signal service attribute 2021-05-18 22:14:21 +03:00
Muayyad alsadi
9317f987fc #278: args 2021-05-17 15:03:47 +03:00
Sander Hoentjen
045cef299b #289: report exit code when --exit-code-from 2021-05-06 02:08:48 +03:00
Muayyad alsadi
a7f97b6120 implement -e in run 2021-05-06 01:17:01 +03:00
Muayyad alsadi
00840d0613 resolve conflict 2021-05-06 00:49:42 +03:00
Daniel Helgenberger
080b8a369e Prefer 'compose.yaml' as per compose spec
https://github.com/compose-spec/compose-spec/blob/master/spec.md#compose-file
2021-05-05 17:32:25 +03:00
Joakim Repomaa
226ac4fb3a fix missing --label flag in volume creation 2021-05-05 02:13:42 +03:00
SsjackX
901213e5b3 Update podman_compose.py
repair mode written as size
2021-04-29 19:20:26 +03:00
Christian Taedcke
b3370603d9 Add support for sysctls in compose file 2021-04-29 19:19:42 +03:00
Marcello Sylvester Bauer
5fabfee497 Support annotations
Support annotations analog to "security opt" in commit 29e2bf4c.

Signed-off-by: Marcello Sylvester Bauer <sylv@sylv.io>
2021-04-29 19:18:29 +03:00
Sebastian Ramirez Magri
75a63df954 fix: check .env in current dir with isfile instead of exists
This prevents cases in which an `.env` directory exists, for example
in Python projects with a local virtual environment, and then
dotenv gets passed the directory path as input.
2021-04-29 19:18:06 +03:00
Joakim Repomaa
08dd36f4c1 Add docker-compose labels for interoperability 2021-04-29 19:17:20 +03:00
Martin Häcker
669953b3d3 Rework argument generation to adhere directly to what podman accepts. 2021-04-29 19:10:55 +03:00
Martin Häcker
d3df688aee Remove test code 2021-04-29 19:10:55 +03:00
Martin Häcker
bda7b5e812 Add exec support 2021-04-29 19:10:55 +03:00
Muayyad alsadi
6289d25a42 fixes #236: compatible with docker-compose 2020-12-02 15:31:51 +02:00
Andreas Kohn
abc08135ba Only pull each image once 2020-11-27 18:09:58 +02:00
Daniel Helgenberger
9cd837f01d Fixes #236: Ensure project name works with podman
In case we use dir_basename as podman project name, ensure it matches
podman project name requirement regex: [a-zA-Z0-9][a-zA-Z0-9_.-]*
2020-11-19 17:52:49 +02:00
Davide Madrisan
a4b8b5e709 Fix 'podman-compose version' with no compose file in the working directory
Signed-off-by: Davide Madrisan <davide.madrisan@gmail.com>
2020-11-19 14:51:06 +02:00
Muayyad alsadi
5971f57130 FIXES #249: update dotenv with some envs 2020-11-05 00:14:57 +02:00
Muayyad alsadi
ab96f12dba FIXES #249: update dotenv with some envs 2020-11-05 00:08:19 +02:00
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