From 19db96873d6bb6eac9e4da78df0475eea4d3107a Mon Sep 17 00:00:00 2001 From: Andrew Hsu Date: Mon, 19 Jun 2017 18:29:15 +0000 Subject: [PATCH] restart docker service if needed for rpm upgrade Signed-off-by: Andrew Hsu (cherry picked from commit 3152177fdd93d6e3d8c930600bd9bff4f9a36e1d) Signed-off-by: Andrew Hsu --- .../packaging/rpm/centos-7/docker-ce.spec | 25 +++++++++++++++++++ .../packaging/rpm/fedora-24/docker-ce.spec | 25 +++++++++++++++++++ .../packaging/rpm/fedora-25/docker-ce.spec | 25 +++++++++++++++++++ 3 files changed, 75 insertions(+) diff --git a/components/packaging/rpm/centos-7/docker-ce.spec b/components/packaging/rpm/centos-7/docker-ce.spec index e0f4087de9..c04be0a07c 100644 --- a/components/packaging/rpm/centos-7/docker-ce.spec +++ b/components/packaging/rpm/centos-7/docker-ce.spec @@ -164,6 +164,20 @@ done /usr/share/vim/vimfiles/syntax/dockerfile.vim /usr/share/nano/Dockerfile.nanorc +%pre +if [ $1 -gt 0 ] ; then + # package upgrade scenario, before new files are installed + + # clear any old state + rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : + + # check if docker service is running + if systemctl is-active docker > /dev/null 2>&1; then + systemctl stop docker > /dev/null 2>&1 || : + touch %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : + fi +fi + %post %systemd_post docker if ! getent group docker > /dev/null; then @@ -176,6 +190,17 @@ fi %postun %systemd_postun_with_restart docker +%posttrans +if [ $1 -ge 0 ] ; then + # package upgrade scenario, after new files are installed + + # check if docker was running before upgrade + if [ -f %{_localstatedir}/lib/rpm-state/docker-is-active ]; then + systemctl start docker > /dev/null 2>&1 || : + rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : + fi +fi + %changelog * Mon Jun 19 2017 17.06.0-ce-rc5 diff --git a/components/packaging/rpm/fedora-24/docker-ce.spec b/components/packaging/rpm/fedora-24/docker-ce.spec index 543dd90534..4f6694c37b 100644 --- a/components/packaging/rpm/fedora-24/docker-ce.spec +++ b/components/packaging/rpm/fedora-24/docker-ce.spec @@ -165,6 +165,20 @@ done /usr/share/vim/vimfiles/syntax/dockerfile.vim /usr/share/nano/Dockerfile.nanorc +%pre +if [ $1 -gt 0 ] ; then + # package upgrade scenario, before new files are installed + + # clear any old state + rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : + + # check if docker service is running + if systemctl is-active docker > /dev/null 2>&1; then + systemctl stop docker > /dev/null 2>&1 || : + touch %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : + fi +fi + %post %systemd_post docker if ! getent group docker > /dev/null; then @@ -177,6 +191,17 @@ fi %postun %systemd_postun_with_restart docker +%posttrans +if [ $1 -ge 0 ] ; then + # package upgrade scenario, after new files are installed + + # check if docker was running before upgrade + if [ -f %{_localstatedir}/lib/rpm-state/docker-is-active ]; then + systemctl start docker > /dev/null 2>&1 || : + rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : + fi +fi + %changelog * Mon Jun 19 2017 17.06.0-ce-rc5 diff --git a/components/packaging/rpm/fedora-25/docker-ce.spec b/components/packaging/rpm/fedora-25/docker-ce.spec index 73a06e5895..f85e9214b9 100644 --- a/components/packaging/rpm/fedora-25/docker-ce.spec +++ b/components/packaging/rpm/fedora-25/docker-ce.spec @@ -163,6 +163,20 @@ done /usr/share/vim/vimfiles/syntax/dockerfile.vim /usr/share/nano/Dockerfile.nanorc +%pre +if [ $1 -gt 0 ] ; then + # package upgrade scenario, before new files are installed + + # clear any old state + rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : + + # check if docker service is running + if systemctl is-active docker > /dev/null 2>&1; then + systemctl stop docker > /dev/null 2>&1 || : + touch %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : + fi +fi + %post %systemd_post docker if ! getent group docker > /dev/null; then @@ -175,6 +189,17 @@ fi %postun %systemd_postun_with_restart docker +%posttrans +if [ $1 -ge 0 ] ; then + # package upgrade scenario, after new files are installed + + # check if docker was running before upgrade + if [ -f %{_localstatedir}/lib/rpm-state/docker-is-active ]; then + systemctl start docker > /dev/null 2>&1 || : + rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : + fi +fi + %changelog * Mon Jun 19 2017 17.06.0-ce-rc5