mirror of
https://github.com/containers/podman.git
synced 2025-12-02 02:58:03 +08:00
(Stealing from: @rhatdan 's https://github.com/containers/buildah/pull/2038 ) 1 We need to update all packages in the podman image to make sure they are up2date. 2 reinstall shadow-utils. For some reason the fedora base image does not include the file capabilities assigned to /usr/bin/newuidmap and /usr/bin/newgidmap. Reinstalling shadow-utils, brings them back. 3 Add a default user build to the system. This will create the /etc/subuid and /etc/subgid maps get created correctly. Once we have this we should be able to build a container starting with a non privileged user podman run -ti --user build --device=/dev/fuse -v ./Dockerfile:/Dockerfile:z quay.io/podman/stable podman buildd / Addresses: #4741 Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
29 lines
1.4 KiB
Docker
29 lines
1.4 KiB
Docker
# testing/Dockerfile
|
|
#
|
|
# Build a Podman image using the latest
|
|
# version of Podman that is in updates-testing
|
|
# on the Fedoras Updates System. At times this
|
|
# may be the same the latest stable version.
|
|
# https://bodhi.fedoraproject.org/updates/?search=podman
|
|
# This image can be used to create a secured container
|
|
# that runs safely with privileges within the container.
|
|
#
|
|
FROM fedora:latest
|
|
|
|
# Don't include container-selinux and remove
|
|
# directories used by yum that are just taking
|
|
# up space.
|
|
RUN useradd build; yum -y update; yum -y reinstall shadow-utils; yum -y install podman fuse-overlayfs --exclude container-selinux --enablerepo updates-testing; rm -rf /var/cache /var/log/dnf* /var/log/yum.*
|
|
|
|
# Adjust storage.conf to enable Fuse storage.
|
|
RUN sed -i -e 's|^#mount_program|mount_program|g' -e '/additionalimage.*/a "/var/lib/shared",' /etc/containers/storage.conf
|
|
RUN mkdir -p /var/lib/shared/overlay-images /var/lib/shared/overlay-layers; touch /var/lib/shared/overlay-images/images.lock; touch /var/lib/shared/overlay-layers/layers.lock
|
|
|
|
# Adjust libpod.conf to write logging to a file
|
|
RUN sed -i 's/# events_logger = "journald"/events_logger = "file"/g' /usr/share/containers/libpod.conf
|
|
|
|
# Set up environment variables to note that this is
|
|
# not starting with usernamespace and default to
|
|
# isolate the filesystem with chroot.
|
|
ENV _BUILDAH_STARTED_IN_USERNS="" BUILDAH_ISOLATION=chroot
|