Handle DOCKER_HOST environment for podman-docker package

Rootless users should be defaulted to point DOCKER_HOST at
$XDG_RUNTIME_DIR/podman/podman.sock

When podman-docker package is installed.

[NO NEW TESTS NEEDED]

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
Daniel J Walsh 2024-02-12 16:05:38 -05:00
parent 36853c0d06
commit ad55ba6eb2
No known key found for this signature in database
GPG key ID: A2DF901DABE2C028
5 changed files with 27 additions and 2 deletions

View file

@ -875,10 +875,13 @@ install.completions:
install.docker: install.docker:
install ${SELINUXOPT} -d -m 755 $(DESTDIR)$(BINDIR) install ${SELINUXOPT} -d -m 755 $(DESTDIR)$(BINDIR)
$(eval INTERPOLATED_DOCKER_SCRIPT := $(shell mktemp)) $(eval INTERPOLATED_DOCKER_SCRIPT := $(shell mktemp))
env BINDIR=${BINDIR} ETCDIR=${ETCDIR} envsubst < docker.in > ${INTERPOLATED_DOCKER_SCRIPT} env BINDIR=${BINDIR} ETCDIR=${ETCDIR} envsubst < docker/docker.in > ${INTERPOLATED_DOCKER_SCRIPT}
install ${SELINUXOPT} -m 755 ${INTERPOLATED_DOCKER_SCRIPT} $(DESTDIR)$(BINDIR)/docker install ${SELINUXOPT} -m 755 ${INTERPOLATED_DOCKER_SCRIPT} $(DESTDIR)$(BINDIR)/docker
rm ${INTERPOLATED_DOCKER_SCRIPT} rm ${INTERPOLATED_DOCKER_SCRIPT}
install ${SELINUXOPT} -m 755 -d $(DESTDIR)${SYSTEMDDIR} $(DESTDIR)${USERSYSTEMDDIR} $(DESTDIR)${TMPFILESDIR} $(DESTDIR)${USERTMPFILESDIR} install ${SELINUXOPT} -m 755 -d $(DESTDIR)${SYSTEMDDIR} $(DESTDIR)${USERSYSTEMDDIR} $(DESTDIR)${TMPFILESDIR} $(DESTDIR)${USERTMPFILESDIR}
install ${SELINUXOPT} -d -m 755 $(DESTDIR)${ETCDIR}/profile.d
install ${SELINUXOPT} -m 644 docker/podman-docker.sh $(DESTDIR)${ETCDIR}/profile.d/podman-docker.sh
install ${SELINUXOPT} -m 644 docker/podman-docker.csh $(DESTDIR)${ETCDIR}/profile.d/podman-docker.csh
install ${SELINUXOPT} -m 644 contrib/systemd/system/podman-docker.conf -t $(DESTDIR)${TMPFILESDIR} install ${SELINUXOPT} -m 644 contrib/systemd/system/podman-docker.conf -t $(DESTDIR)${TMPFILESDIR}
install ${SELINUXOPT} -m 644 contrib/systemd/system/podman-docker.conf -t $(DESTDIR)${USERTMPFILESDIR} install ${SELINUXOPT} -m 644 contrib/systemd/system/podman-docker.conf -t $(DESTDIR)${USERTMPFILESDIR}

10
docker/podman-docker.csh Normal file
View file

@ -0,0 +1,10 @@
# DOCKER_HOST initialization
if ($?DOCKER_HOST) exit
if ( "$euid" == 0 ) then
setenv DOCKER_HOST unix:///run/podman/podman.sock
else
if ($?XDG_RUNTIME_DIR) then
setenv DOCKER_HOST unix://$XDG_RUNTIME_DIR/podman/podman.sock
endif
endif

11
docker/podman-docker.sh Normal file
View file

@ -0,0 +1,11 @@
# DOCKER_HOST initialization
if [ -z "$DOCKER_HOST" ]; then
if [ $(id -u) -eq 0 ]; then
export DOCKER_HOST=unix:///run/podman/podman.sock
else
if [ -n "$XDG_RUNTIME_DIR" ]; then
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock
fi
fi
fi

View file

@ -248,7 +248,7 @@ LDFLAGS=''
%install %install
install -dp %{buildroot}%{_unitdir} install -dp %{buildroot}%{_unitdir}
PODMAN_VERSION=%{version} %{__make} PREFIX=%{buildroot}%{_prefix} ETCDIR=%{_sysconfdir} \ PODMAN_VERSION=%{version} %{__make} DESTDIR=%{buildroot} PREFIX=%{_prefix} ETCDIR=%{_sysconfdir} \
install.bin \ install.bin \
install.man \ install.man \
install.systemd \ install.systemd \
@ -300,6 +300,7 @@ cp -pav test/system %{buildroot}/%{_datadir}/%{name}/test/
%files docker %files docker
%{_bindir}/docker %{_bindir}/docker
%{_mandir}/man1/docker*.1* %{_mandir}/man1/docker*.1*
%{_sysconfdir}/profile.d/%{name}-docker.*
%{_tmpfilesdir}/%{name}-docker.conf %{_tmpfilesdir}/%{name}-docker.conf
%{_user_tmpfilesdir}/%{name}-docker.conf %{_user_tmpfilesdir}/%{name}-docker.conf