Commit Graph

1062 Commits

Author SHA1 Message Date
Daniel J Walsh
a3156da21c podman exec should handle options --env foo
If the user does not specify foo=bar, then the exec code should
look for the foo environment variable in its environment and pass it
in.  This is the way podman run works.

Also added tests to make sure this all works.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #552
Approved by: mheon
2018-03-26 23:27:00 +00:00
Matthew Heon
3f5da4d0dd Make container env variable conditional
Add only when it's not already present.

Add a more specific version in podman spec generation
so we get 'container=podman' not 'container=libpod'

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #540
Approved by: baude
2018-03-23 17:28:09 +00:00
baude
f7c8dd5836 Stage 4 Image cleanup
Cull funcs from runtime_img.go which are no longer needed.  Also, fix any remaining
spots that use the old image technique.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #532
Approved by: mheon
2018-03-23 15:35:37 +00:00
baude
c55e371365 If cidfile exists, do not proceed
Both podman run and create have an option to write the container ID to a file. The option
is called cidfile.  If the cidfile exists, we should not create or run a container but rather
output a sensical error message.

Resolves: #530

Signed-off-by: baude <bbaude@redhat.com>

Closes: #531
Approved by: rhatdan
2018-03-23 12:49:39 +00:00
baude
d364d41e1b Removing tagged images change in behavior
An image name is really just a tag.  When an image has multiple tags, we should be
able to "delete" the one of its tags without harm. In this case, the "delete' is
really a form of Untag (removing the tag from the image).

If an image has multiple tags and the user tries to delete by ID without force, this
should be denied because when you delete by ID there is no distinguishing it like
image tags.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #528
Approved by: mheon
2018-03-22 19:06:51 +00:00
baude
d0835493d5 Migrate podman inspect and tag to image library
Signed-off-by: baude <bbaude@redhat.com>

Closes: #525
Approved by: baude
2018-03-21 19:14:50 +00:00
baude
3428de0672 Migrate podman images to image library
Signed-off-by: baude <bbaude@redhat.com>

Closes: #523
Approved by: mheon
2018-03-21 16:20:14 +00:00
baude
38a1b2f16d Image library stage 4 - create and commit
Migrate the podman create and commit subcommandis to leverage the images library.  I also had
to migrate the cmd/ portions of run and rmi.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #498
Approved by: mheon
2018-03-20 16:20:12 +00:00
Matthew Heon
c08a1e0b11 Fix build after c/image changes
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #505
Approved by: rhatdan
2018-03-16 14:35:07 +00:00
Daniel J Walsh
d7acfb478e Merge pull request #447 from mheon/sig_proxy
Add signal proxying to podman run and attach
2018-03-16 10:34:32 -04:00
Matthew Heon
cfdfb751a3 Address review comments
Signed-off-by: Matthew Heon <mheon@redhat.com>

Closes: #503
Approved by: rhatdan
2018-03-16 13:55:49 +00:00
Matthew Heon
2724434369 Add 'podman restart' command
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #503
Approved by: rhatdan
2018-03-16 13:55:49 +00:00
Matthew Heon
8840b92da6 Remove ability to specify mount label when mounting
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #506
Approved by: rhatdan
2018-03-16 13:35:23 +00:00
Matthew Heon
cd73a6904d Add signal proxying to podman run, start, and attach
Also removes sig-proxy from 'podman create', where is does not
make sense.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-03-15 16:00:20 -04:00
Daniel J Walsh
647fedc2a2 We should not allow a user to mount a container with a different label
We need to get the label from the container and mount with it.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #502
Approved by: mheon
2018-03-15 19:08:54 +00:00
Daniel J Walsh
4bc166446d We should not have a default workdir
Having a default workdir is causing us not to use the
container images workdir.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #501
Approved by: mheon
2018-03-15 18:24:37 +00:00
Matthew Heon
55f2f58145 Add StartAndAttach() API endpoint for containers
This solves our prior problems with attach races by ensuring the
order is correct.

Also contains substantial cleanups to the attach code.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #482
Approved by: baude
2018-03-15 17:45:11 +00:00
Matthew Heon
4739fc2d98 Add test. Move attach code in start back
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #482
Approved by: baude
2018-03-15 17:45:11 +00:00
Matthew Heon
02a26c2934 Implement container restarting
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #482
Approved by: baude
2018-03-15 17:45:11 +00:00
baude
b85b217f55 Stage3 Image Library
This represents the stage3 implementation for the image library.  At this point, we
are moving the image-centric functions to pkg/image including migration of args and
object-oriented references.  This is a not a one-for-one migration of funcs and some
funcs will need to continue to reside in runtime_img as they are overly specific to
libpod and probably not useful to others.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #484
Approved by: baude
2018-03-14 20:21:31 +00:00
baude
bc358eb396 Include tmpfs in inspect
Other container runtimes include the tmpfs mount points in their inspect
output.  Podman should as well.  It is under hostconfig.

Resolves: #483

Signed-off-by: baude <bbaude@redhat.com>

Closes: #488
Approved by: rhatdan
2018-03-14 17:14:07 +00:00
Valentin Rothberg
9b2f81b07b podman-images: return correct image list
Return and print the correct list of images by adding all specified
RepoTags to one image object, and priting them separately in
repository:repotag pairs.

Signed-off-by: Valentin Rothberg <vrothberg@suse.com>

Closes: #477
Approved by: rhatdan
2018-03-14 14:01:53 +00:00
Matthew Heon
7516dfd8c5 Fix a potential race around container removal in ps
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #467
Approved by: baude
2018-03-09 02:14:12 +00:00
baude
984dfecb2c podman ps command string too long
The default outout for podman ps should limit itself if the command is long. If the command
is more than 20 characters, we truncate the command and add an elipses to it.

Resolves: #464

Signed-off-by: baude <bbaude@redhat.com>

Closes: #466
Approved by: rhatdan
2018-03-09 01:45:51 +00:00
baude
4344639508 podman import, load, and commit are too verbose
The progress should not be show for import, load, and commit.  It makes machine
parsing of the output much more difficult.  Also, each command should output an
image ID or name for the user.

Added a --verbose flag for users that still want to see progress.

Resolves issue #450

Signed-off-by: baude <bbaude@redhat.com>

Closes: #456
Approved by: rhatdan
2018-03-07 20:59:11 +00:00
TomSweeneyRedHat
042139673e Add buildah bud options from common.go
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>

Closes: #453
Approved by: rhatdan
2018-03-06 23:55:46 +00:00
Matthew Heon
497190db1b Adjust podman logs error message for clarity
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #441
Approved by: rhatdan
2018-03-02 19:58:15 +00:00
baude
0c4a276a04 podman logs -f: does not detect container stop or rm
If a container stops, we should stop the logging capability and
gracefully exit. However, if the container pauses, we should allow
the log to continue.

Resolves issue: #435
Signed-off-by: baude <bbaude@redhat.com>

Closes: #437
Approved by: baude
2018-03-02 15:51:58 +00:00
Matthew Heon
546463964e Fix issue with podman logs on fresh containers
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #434
Approved by: baude
2018-03-01 23:25:41 +00:00
Seth Jennings
afbb2a7f23 remove build alias
Signed-off-by: Seth Jennings <sjenning@redhat.com>

Closes: #413
Approved by: mheon
2018-02-27 22:32:56 +00:00
baude
6cb1c31d3f Restrict top output to container's pids only
Due to the way ps arguments work, it was possible to display pids
that dont below to the container in top output. We now filter pids
that dont belong to the container out of the output.  This also means
the pid column must be present in the output or we throw an error.

This resolves issue #391
Signed-off-by: baude <bbaude@redhat.com>

Closes: #400
Approved by: rhatdan
2018-02-26 23:41:47 +00:00
baude
f47a5be60d ps displays incorrect exit code
The exit code should be derived in the batch operation and pulled
from the batchinfo struct.

Resolves issue #407

Signed-off-by: baude <bbaude@redhat.com>

Closes: #408
Approved by: rhatdan
2018-02-26 23:18:36 +00:00
baude
b351b12e27 Tagging an image alias by shortname
When trying to tag an alias (tag) of an image using only the shortname
and no tag, we were unable to find the image in storage.  This corrects
that issue and adds an integration test to protect against regression. I
also updated the man page per the filed issue.

While writing the integration test, I discovered that inspect could also
not find a tagged image without its :tag.

Resolves Issue #385
Resolves Issue #384

Signed-off-by: baude <bbaude@redhat.com>

Closes: #398
Approved by: mheon
2018-02-26 18:28:54 +00:00
baude
5e7979f016 Address review comments
Review comments to delete WithNoNew function and its append.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #369
Approved by: rhatdan
2018-02-24 09:15:47 +00:00
Daniel J Walsh
831dc48883 Add support for --no-new-privs
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #369
Approved by: rhatdan
2018-02-24 09:15:47 +00:00
baude
e97ca5bd38 podman ps json output use batched ops
The podman ps command for non-json targets has the ability to use a "batched" function
which limits the use of locks needed.  The collection of output for JSON should use
this too.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #380
Approved by: rhatdan
2018-02-23 17:56:51 +00:00
Matthew Heon
89110f682d Add accessors to all container config and state fields
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #381
Approved by: rhatdan
2018-02-22 19:59:54 +00:00
umohnani8
3d395767d8 Implement --image-volumes for create and run
--image-volumes tells podman what to do with the image volumes in the image config
There are 3 options: bind, tmpfs, and ignore
bind puts the volume contents in /var/lib/containers/storage/container-id/volumes/vol-dir
and bind mounts it into the container at /vol-dir
tmpfs mounts /vol-dir as a tmps into the container
ignore doesn't mount the image volumes onto the container

Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #377
Approved by: rhatdan
2018-02-22 15:14:00 +00:00
Jhon Honce
b8d1ce03a1 Add tests and cleanup
- Added run_cgroup_parent_test.go
- Cleaned up calls to logrus

Signed-off-by: Jhon Honce <jhonce@redhat.com>

Closes: #370
Approved by: rhatdan
2018-02-22 12:39:08 +00:00
Jhon Honce
a58e9f7cee Push up createConfig.CgroupParent processing to parent
Signed-off-by: Jhon Honce <jhonce@redhat.com>

Closes: #370
Approved by: rhatdan
2018-02-22 12:39:08 +00:00
Jhon Honce
3f004df384 Implement podman run option --cgroup-parent
Example:

sudo /usr/local/bin/podman run --cgroup-parent=/zzz fedora cat /proc/self/cgroup

Signed-off-by: Jhon Honce <jhonce@redhat.com>

Closes: #370
Approved by: rhatdan
2018-02-22 12:39:08 +00:00
baude
f1f0f37dc1 Correct exit code 126 and 127
The exit codes for 126 and 127 were reversed.  For the record, the exit
codes used are as follows:

* 125 if ‘chroot’ itself fails
* 126 if COMMAND is found but cannot be invoked
* 127 if COMMAND cannot be found

This resolves issue #367

Signed-off-by: baude <bbaude@redhat.com>

Closes: #378
Approved by: baude
2018-02-21 16:49:00 +00:00
baude
6ce70a33c5 Inspect output should be in array form
Inspect should be able to inspect one or more containers depending
on the user input.  Therefore, inspect output should be in array
format so the consumer could potentially iterate it.  This PR allows
users to specify one more or containers|images|or a mix for
inspection.  The output, as stated, is therefore in array form.  This
holds true even for a singular image.

In the case that the user enters an invalid container|image "name", we
handle that gracefully.  Podman will output json for the valid names
until it reaches the invalid one.  For example:

In this case, podman will out the json for alpine and then print an
error about 123 being invalid.  It will not continute onto busybox.
This behavior imatates docker.

This addresses issue #360

Signed-off-by: baude <bbaude@redhat.com>

Closes: #371
Approved by: baude
2018-02-21 14:22:36 +00:00
Matthew Heon
4803b5a639 Alias --time to --timeout for 'podman stop'
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #375
Approved by: rhatdan
2018-02-21 13:32:59 +00:00
baude
4929e37507 Performance enhancement for podman images
Previous code was using slow routines to collect some of the information
needed to output images.  Specifically size was being calculated instead
of using the cached, already known size already available.  Also, straight-
lined several of the code paths.  Overall assessment is that these
improvements cut the time for images in half.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #365
Approved by: mheon
2018-02-20 21:54:32 +00:00
umohnani8
8f8fd1d900 Fix podman save when redirecting output
podman save would write the progress bar to the image tar file
when the output was redirected with >.
Fixed the writer to write to stderr for all commands using writer

Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #362
Approved by: mheon
2018-02-20 15:16:28 +00:00
baude
586bb86a2a Run podman inside a podman container
We should be able to run nested podman containers in particular
for our testing environment. i.e. eat our own dog food.

Some privileges had to be corrected in order for this to work
correctly.

Added a third papr target that runs podman tests inside podman.  I
marked the test as not required right now as we get more confident
in the results

Signed-off-by: baude <bbaude@redhat.com>

Closes: #340
Approved by: rhatdan
2018-02-16 18:35:54 +00:00
baude
445aaf87fa images --all developer note
podman does not implement --all for images

intermediate images are only generated during the build process.  they are
children to the image once built. until buildah supports caching builds,
it will not generate these intermediate images.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #344
Approved by: rhatdan
2018-02-16 16:08:08 +00:00
Daniel J Walsh
57b910a031 Add podman version
Copy the way cri-o does this by adding a libpod/version
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #343
Approved by: mheon
2018-02-15 20:13:08 +00:00
baude
a67fdeaf0d No registries warning
When no /etc/containers/registries.conf is found, log a warning message.

Signed-off-by: baude <bbaude@redhat.com>

Closes: #338
Approved by: mheon
2018-02-15 19:17:37 +00:00