Commit Graph

152 Commits

Author SHA1 Message Date
OpenShift Merge Robot
50b18847a6 Merge pull request #4232 from csomh/auth-file-path
Fix default path for auth.json
2019-10-11 18:08:25 +02:00
Hunor Csomortáni
f4c7a66149 Fix default path for auth.json
Default path should be ${XDG_RUNTIME_DIR}/containers/auth.json according
to the docs.

This regressed to ${XDG_RUNTIME_DIR}/auth.json in #3760.

Fixes: #4227

Signed-off-by: Hunor Csomortáni <csomh@redhat.com>
2019-10-10 21:51:25 +02:00
Giuseppe Scrivano
5963077e93 cli: support --systemd=always
it enforces the systemd mode also when the command name doesn't match
/usr/sbin/init or systemd.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-09 23:39:18 +02:00
Giuseppe Scrivano
3ba3e1c751 systemd: expect full path /usr/sbin/init
"init" is a quite common name for the command executed in a container
image and Podman ends up using the systemd mode also when not
required.

Be stricter on enabling the systemd mode and not enable it
automatically when the basename is "init" but expect the full path
"/usr/sbin/init".

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-10-09 23:38:45 +02:00
OpenShift Merge Robot
c817ea1b33 Merge pull request #4032 from rhatdan/pids-limit
Setup a reasonable default for pids-limit 4096
2019-10-07 15:01:27 -07:00
Daniel J Walsh
118cf1fc63 Setup a reasonable default for pids-limit 4096
CRI-O defaults to 1024 for the maximum pids in a container.  Podman
should have a similar limit. Once we have a containers.conf, we can
set the limit in this file, and have it easily customizable.

Currently the documentation says that -1 sets pids-limit=max, but -1 fails.
This patch allows -1, but also indicates that 0 also sets the max pids limit.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-10-04 16:09:13 -04:00
Miloslav Trmač
d3f59bedb3 Update c/image to v4.0.1 and buildah to 1.11.3
This requires updating all import paths throughout, and a matching
buildah update to interoperate.

I can't figure out the reason for go.mod tracking
	github.com/containers/image v3.0.2+incompatible // indirect
((go mod graph) lists it as a direct dependency of libpod, but
(go list -json -m all) lists it as an indirect dependency),
but at least looking at the vendor subdirectory, it doesn't seem
to be actually used in the built binaries.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
2019-10-04 20:18:23 +02:00
OpenShift Merge Robot
7ac6ed3b4b Merge pull request #3581 from mheon/no_cgroups
Support running containers without CGroups
2019-09-11 00:58:46 +02:00
Matthew Heon
c2284962c7 Add support for launching containers without CGroups
This is mostly used with Systemd, which really wants to manage
CGroups itself when managing containers via unit file.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-09-10 10:52:37 -04:00
Matthew Heon
046178e55f Add function for looking up volumes by partial name
This isn't included in Docker, but seems handy enough.

Use the new API for 'volume rm' and 'volume inspect'.

Fixes #3891

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-09-09 12:06:10 -04:00
Jhon Honce
02cda4066d Update varlink doc and code
* Improved error message
* Added documentation
* Updated messages to include missing data

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2019-08-26 16:45:49 -07:00
baude
e06d0fe5e5 podman-remote: cp crashes
prune unwanted messages when running a container remotely.  also, cp is
not remote-enabled yet and as such should not be available on the remote
client.

Fixes: #3861

Signed-off-by: baude <bbaude@redhat.com>
2019-08-21 14:53:23 -05:00
OpenShift Merge Robot
890378e3f7 Merge pull request #3760 from rhatdan/auth
Use GetRuntimeDir to setup auth.json for login
2019-08-19 21:16:06 +02:00
OpenShift Merge Robot
76f327f73f Merge pull request #3617 from QiWang19/create_pull
add --pull flag for podman create&run
2019-08-17 14:55:14 +02:00
Daniel J Walsh
d27e71374e Use GetRuntimeDir to setup auth.json for login
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-08-12 14:11:53 -04:00
OpenShift Merge Robot
9bee6907a5 Merge pull request #3751 from TomSweeneyRedHat/dev/tsweeney/squishnits
Squish a few tpyo nits in container.go doc
2019-08-12 19:51:19 +02:00
Giuseppe Scrivano
9e2f9c8b78 cmd: drop check for euid==0
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-08-12 12:33:28 +02:00
Qi Wang
decfea65be add --pull flag for podman create&run
Requirement from https://github.com/containers/libpod/issues/3575#issuecomment-512238393

Added --pull for podman create and pull to match the newly added flag in docker CLI.
`missing`: default value, podman will pull the image if it does not exist in the local.
`always`: podman will always pull the image.
`never`: podman will never pull the image.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-08-09 15:21:34 -04:00
OpenShift Merge Robot
492b4f65f6 Merge pull request #3737 from QiWang19/create_auth
fix create&run getting --authfile from cli
2019-08-09 21:09:50 +02:00
Jhon Honce
f070913c6a Improve dns-search validation, empty domains now return an error
Fixes #3426

Signed-off-by: Jhon Honce <jhonce@redhat.com>
2019-08-09 09:58:39 -07:00
Qi Wang
cfdf891552 fix create&run getting --authfile from cli
Add flag `--authfile` to create and run so Podman can read authfile path from not only environemnt variable REGISTRY_AUTH_FILE but also CLI

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-08-09 12:27:32 -04:00
Daniel J Walsh
5270cd89d3 Allow the passing of '.' to --dns-search
--dns-search is defined to remove all search domains from a container.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-08-08 15:25:50 -04:00
TomSweeneyRedHat
3132fdab06 Squish a few tpyo nits in container.go doc
A quick fix a few nits in documentation within
cmd/podman/shared/containers.go.  This gets the last
bits as noted in #3577

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2019-08-07 10:14:57 -04:00
Matthew Heon
28b545d04c When populating CMD, do not include Entrypoint
Previously, we use CreateConfig's Command to populate container
Command (which is used as CMD for Inspect and Commit).
Unfortunately, CreateConfig's Command is the container's full
command, including a prepend of Entrypoint - so we duplicate
Entrypoint for images that include it.

Maintain a separate UserCommand in CreateConfig that does not
include the entrypoint, and use that instead.

Fixes #3708

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-08-06 16:11:42 -04:00
OpenShift Merge Robot
e84ed3c1bc Merge pull request #3665 from QiWang19/env
Set -env variables as appropriate
2019-07-30 21:20:34 +02:00
Qi Wang
2da86bdc3a Set -env variables as appropriate
close #3648

podman create and podman run do not set --env variable if the environment is not present with a value

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-07-30 12:02:18 -04:00
TomSweeneyRedHat
0b14e53590 Touch up input argument error on create
Add an error when there are not enough input arguments for remote
create.  Addresses comments in #3656

Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
2019-07-30 09:05:48 -04:00
Jhon Honce
40bf0649af Fix commit --changes env=X=Y
Signed-off-by: Jhon Honce <jhonce@redhat.com>
2019-07-26 16:04:17 -07:00
OpenShift Merge Robot
0c4dfcfe57 Merge pull request #3639 from giuseppe/user-ns-container
podman: support --userns=ns|container
2019-07-26 15:06:06 +02:00
Giuseppe Scrivano
ba5741e398 pods: do not to join a userns if there is not any
do not attempt to join the user namespace if the pod is running in the
host user namespace.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-07-25 23:04:54 +02:00
Qi Wang
a328e873c6 fix import not ignoring url path
fix #3609
Podman import used to check filename to only allow tarball path as a file. It should also allow an url as the doc mentioned. This PR allows the program to continue if the input is a valid URL

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-07-24 11:41:48 -04:00
John Hooks
777cce20ca Fixes issue #3577.
Fix punctuation and wording in some places.

Signed-off-by: John Hooks <hooksie11@gmail.com>
2019-07-23 22:52:24 -04:00
baude
db826d5d75 golangci-lint round #3
this is the third round of preparing to use the golangci-lint on our
code base.

Signed-off-by: baude <bbaude@redhat.com>
2019-07-21 14:22:39 -05:00
OpenShift Merge Robot
398aeac853 Merge pull request #3599 from QiWang19/ps-regexp
support podman ps filter regular expressions
2019-07-19 03:27:28 +02:00
Qi Wang
5047c79e71 support podman ps filter regular expressions
podman ps --filter use regexp to match the container name.

Signed-off-by: Qi Wang <qiwan@redhat.com>
2019-07-18 13:11:04 -04:00
Giuseppe Scrivano
0b57e77d7c libpod: support for cgroup namespace
allow a container to run in a new cgroup namespace.

When running in a new cgroup namespace, the current cgroup appears to
be the root, so that there is no way for the container to access
cgroups outside of its own subtree.

By default it uses --cgroup=host to keep the previous behavior.

To create a new namespace, --cgroup=private must be provided.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-07-18 10:32:25 +02:00
Matthew Heon
1e3e99f2fe Move the HostConfig portion of Inspect inside libpod
When we first began writing Podman, we ran into a major issue
when implementing Inspect. Libpod deliberately does not tie its
internal data structures to Docker, and stores most information
about containers encoded within the OCI spec. However, Podman
must present a CLI compatible with Docker, which means it must
expose all the information in 'docker inspect' - most of which is
not contained in the OCI spec or libpod's Config struct.

Our solution at the time was the create artifact. We JSON'd the
complete CreateConfig (a parsed form of the CLI arguments to
'podman run') and stored it with the container, restoring it when
we needed to run commands that required the extra info.

Over the past month, I've been looking more at Inspect, and
refactored large portions of it into Libpod - generating them
from what we know about the OCI config and libpod's (now much
expanded, versus previously) container configuration. This path
comes close to completing the process, moving the last part of
inspect into libpod and removing the need for the create
artifact.

This improves libpod's compatability with non-Podman containers.
We no longer require an arbitrarily-formatted JSON blob to be
present to run inspect.

Fixes: #3500

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2019-07-17 16:48:38 -04:00
OpenShift Merge Robot
400851ac31 Merge pull request #3508 from csomh/healthcheck-flag-compat
Make the healthcheck flags compatible with Docker CLI
2019-07-16 21:23:52 +02:00
Hunor Csomortáni
3e53bfe36e Make the healthcheck flags compatible with Docker CLI
Docker CLI calls the healthcheck flags "--health-*", instead of
"--healthcheck-*".

Introduce the former, in order to keep compatibility, and alias
the later, in order to avoid breaking current usage.

Change "--healthcheck-*" to "--health-*" in the docs and tests.

Signed-off-by: Hunor Csomortáni <csomh@redhat.com>
2019-07-16 06:15:28 +02:00
Stefan Becker
5caf218b11 create: ignore check if image has HEALTHCHECK NONE
If the image was built with "HEALTHCHECK NONE" then we should create a
container without healthcheck configuration. Otherwise executing the
healthcheck on the container will return "unhealthy" instead of the
correct error message that the container doesn't have a healthcheck.

We also ignore the healthcheck configuration if the command list is
empty or the command string is empty.

Fixes #3525

Signed-off-by: Stefan Becker <chemobejk@gmail.com>
2019-07-16 07:01:43 +03:00
Stefan Becker
33001a9028 create: apply defaults on image healthcheck options
If the image doesn't provide any options, e.g. interval, timeout, etc.,
then apply the Docker defaults when creating the container. Otherwise
the defaults will be left 0 and podman doesn't schedule the healtcheck
service & timer for the container or incorrectly reports unhealthy state
when the check is executed.

Fixes #3525

Signed-off-by: Stefan Becker <chemobejk@gmail.com>
2019-07-16 07:01:43 +03:00
Stefan Becker
e4cba7d36a create: improve parser for --healthcheck-command
Fix Docker CLI compatibility issue: the "--healthcheck-command" option
value should not be split but instead be passed as single string to
"CMD-SHELL", i.e. "/bin/sh -c <opt>".

On the other hand implement the same extension as is already available
for "--entrypoint", i.e. allow the option value to be a JSON array of
strings. This will make life easier for tools like podman-compose.

Updated "--healthcheck-command" option values in tests accordingly.

Continuation of #3455 & #3507

Signed-off-by: Stefan Becker <chemobejk@gmail.com>
2019-07-14 10:33:01 +03:00
OpenShift Merge Robot
6f3e7f7ecc Merge pull request #3557 from rhatdan/env
Add support for --env-host
2019-07-12 10:33:18 +02:00
Daniel J Walsh
efe9c5b0e7 Add glob parsing for --env flag
Sometimes you want to add a few environmen variables based on the last field being a "*".

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-07-11 17:15:20 -04:00
Daniel J Walsh
df75fc62c8 Add support for -env-host
This flag passes the host environment into the container.  The basic idea is to
leak all environment variables from the host into the container.

Environment variables from the image, and passed in via --env and --env-file
will override the host environment.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2019-07-11 13:25:47 -04:00
baude
a78c885397 golangci-lint pass number 2
clean up and prepare to migrate to the golangci-linter

Signed-off-by: baude <bbaude@redhat.com>
2019-07-11 09:13:06 -05:00
baude
e053e0e05e first pass of corrections for golangci-lint
Signed-off-by: baude <bbaude@redhat.com>
2019-07-10 15:52:17 -05:00
Giuseppe Scrivano
714d36b088 podman: create and run honors auth file location
if the auth file was overriden, be sure create and run honors it.

Closes: https://github.com/containers/libpod/issues/3524

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2019-07-09 14:21:15 +02:00
baude
fec1de6ef4 trivial cleanups from golang
the results of a code cleanup performed by the goland IDE.

Signed-off-by: baude <bbaude@redhat.com>
2019-07-03 15:41:33 -05:00
baude
8561b99644 libpod removal from main (phase 2)
this is phase 2 for the removal of libpod from main.

Signed-off-by: baude <bbaude@redhat.com>
2019-06-27 07:56:24 -05:00