Given:
A Containerfile that gets build with podman: bash-4.4$ podman build -t amazing-stuff-007:001 .
# stable/Containerfile
#
# Build a Podman container image from the latest
# stable version of Podman on the Fedoras Updates System.
# 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 docker.io/jrei/systemd-fedora:latest
# Don't include container-selinux and remove
# directories used by dnf that are just taking
# up space.
# TODO: rpm --setcaps... needed due to Fedora (base) image builds
# being (maybe still?) affected by
# https://bugzilla.redhat.com/show_bug.cgi?id=1995337#c3
RUN dnf -y update &&
rpm --setcaps shadow-utils 2>/dev/null &&
dnf -y install podman fuse-overlayfs openssh-clients
--exclude container-selinux &&
dnf clean all &&
rm -rf /var/cache /var/log/dnf* /var/log/yum.*
RUN useradd podman;
echo -e "podman:1:999npodman:1001:64535" > /etc/subuid;
echo -e "podman:1:999npodman:1001:64535" > /etc/subgid;
podman system migrate;
ARG _REPO_URL="https://raw.githubusercontent.com/containers/image_build/main/podman"
ADD $_REPO_URL/containers.conf /etc/containers/containers.conf
ADD $_REPO_URL/podman-containers.conf /home/podman/.config/containers/containers.conf
RUN mkdir -p /home/podman/.local/share/containers &&
chown podman:podman -R /home/podman &&
chmod 644 /etc/containers/containers.conf
# Copy & modify the defaults to provide reference if runtime changes needed.
# Changes here are required for running with fuse-overlay storage inside container.
RUN sed -e 's|^#mount_program|mount_program|g'
-e '/additionalimage.*/a "/var/lib/shared",'
-e 's|^mountopt[[:space:]]*=.*$|mountopt = "nodev,fsync=0"|g'
/usr/share/containers/storage.conf
> /etc/containers/storage.conf
# Setup internal Podman to pass subscriptions down from host to internal container
RUN printf '/run/secrets/etc-pki-entitlement:/run/secrets/etc-pki-entitlementn/run/secrets/rhsm:/run/secrets/rhsmn' > /etc/containers/mounts.conf
# Note VOLUME options must always happen after the chown call above
# RUN commands can not modify existing volumes
VOLUME /var/lib/containers
VOLUME /home/podman/.local/share/containers
RUN mkdir -p /var/lib/shared/overlay-images
/var/lib/shared/overlay-layers
/var/lib/shared/vfs-images
/var/lib/shared/vfs-layers &&
touch /var/lib/shared/overlay-images/images.lock &&
touch /var/lib/shared/overlay-layers/layers.lock &&
touch /var/lib/shared/vfs-images/images.lock &&
touch /var/lib/shared/vfs-layers/layers.lock
ENV _CONTAINERS_USERNS_CONFIGURED=""
ENTRYPOINT /lib/systemd/systemd
I can start the container after the image is build with: podman run -d --name systemd-fedora --tmpfs /tmp --tmpfs /run --tmpfs /run/lock -v /sys/fs/cgroup:/sys/fs/cgroup:ro cbfcbc44a695
Then inside the container I’m able to start the podman socket with:
I already read this article about rootless systemd in rootless podman https://blog.podman.io/2023/02/rootless-systemd-in-rootless-podman/
But I can’t seem to figure out how to configure the Containerfile to start the systemd podman service when container is run. Is it possible to configure something in the Containerfile to start the systemd podman service?