Private
Server IP : 195.201.23.43  /  Your IP : 3.145.107.84
Web Server : Apache
System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64
User : kdecoratie ( 1041)
PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /proc/self/root/var/lib/dpkg/info/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /proc/self/root/var/lib/dpkg/info/docker.io.postinst
#!/bin/sh
set -e

. /usr/share/debconf/confmodule

case "$1" in
	configure)
		if [ -z "$2" ]; then
			# make sure the "docker" system group exists for "docker.socket" to apply it as the group on "docker.sock"
			if ! getent group docker > /dev/null 2>&1; then
				addgroup --system docker
			fi
		fi

		# ZFS handling: create a dedicated ZFS docker dataset to handle all children containers in a single,
		# persistent, place.
		# Also check if zfs executable exists and if it is in $PATH.
		# The zfs command is provided by zfs-fuse | zfsutils and they
		# are runtime Suggested dependencies which means they are not
		# necessarily available during configuration time (LP: #1910133).
		if [ -x "$(command -v zfs)" ] && modinfo zfs >/dev/null 2>&1; then
			# if there is no mountpoint /var/lib/docker:
			# 1: create <currentpool>/var/lib/docker if doesn’t exist (zfs mount?)
			# /var/lib with canmount off if doesn’t exist
			# /var with canmount off if doesn’t exist
			rpool="$(zfs mount | awk '$2=="/" {print $1}'|  cut -d/ -f1)"

			if [ -n "$rpool" ]; then
				dockermnt="$(findmnt -n -o SOURCE /var/lib/docker || true)"

				# Create <currentpool>/var/lib/docker if doesn’t exist
				if echo "$dockermnt" | grep -qE '^$|/ROOT/'; then
					zfs create -o canmount=off "$rpool"/var 2>/dev/null || true
					zfs create -o canmount=off "$rpool"/var/lib 2>/dev/null || true
					if dpkg --compare-versions "$2" le-nl '19.03.8-0ubuntu2'; then
						invoke-rc.d docker stop || true
						mv /var/lib/docker /var/lib/docker.migrating
					fi
					zfs create "$rpool"/var/lib/docker 2>/dev/null || true
					dockermnt="$rpool"/var/lib/docker
				fi

				if dpkg --compare-versions "$2" le-nl '19.03.8-0ubuntu2'; then
					mv /var/lib/docker.migrating/* /var/lib/docker/
					rmdir /var/lib/docker.migrating/
					# Migrate datasets
					for dataset in $(zfs list -H -t filesystem -o name,mountpoint,canmount -r "$rpool"/ROOT | grep -E "/var/lib/[0-9a-f]{64}(-init)?\slegacy\son" | cut -f1); do
						dockerid=${dataset##*/}
						zfs rename "$dataset" "$dockermnt/$dockerid" || true
					done
					# Purge their zsys history datasets
					for dataset in $(zfs list -H -t snapshot -o name -r "$rpool"/var/lib/docker | grep "@autozsys_"); do
						zfs destroy -R "$dataset" || true
					done
					invoke-rc.d docker start || true
				fi
			fi
		fi

		;;
	abort-*)
		# How'd we get here??
		exit 1
		;;
	*)
		;;
esac

# Restart Docker if it's running (thus this is an upgrade) and the user (via
# debconf) tells us they're OK with that.
#
# The snippet below is supposed to be in a config maintscript but it is not
# because of the following:
#
## When a package is installed in the system, dpkg-preconfigure (*not*
## dpkg-reconfigure) is invoked.  If the package has debconf templates *and* a
## .config file, then dpkg-preconfigure executes the .config script which
## ultimately asks the debconf questions to the user.  Then, later in the
## installation process, when the postinst script is executed, the config script
## is once again invoked.  You might think "wait, won't that mean that the user
## will get asked the same question(s) twice?!", and you would be right!  That's
## one of the reasons why debconf keeps track of whether the questions have been
## asked already (the "seen" flag in the database).
##
## docker.io manipulates this "seen" flag (see the "db_fset" call below) in
## order to make sure that the user will always get asked the restart question
## during package upgrades.  If we leave this code inside the postinst script
## and get rid of the config script, then the question only gets asked once
## because dpkg-preconfigure won't find a config script and won't invoke
## debconf.  But if you move this code into a proper config script, the question
## gets asked twice during upgrades/reinstalls.
db_version 2.0
db_fset docker.io/restart seen false
if [ -n "$2" ] && [ "$1" = 'configure' ] && {
        # either:
        #   - we're doing "dpkg-reconfigure" (and thus need to "db_input" to make sure users can change their answer between installs/upgrades)
        #   - we're doing install/upgrade and Docker is running (and thus it matters whether or not the user wants us to restart Docker for them)
        [ -n "${DEBCONF_RECONFIGURE:-}" ] \
        || invoke-rc.d --disclose-deny docker status > /dev/null 2>&1
}; then
        db_input high docker.io/restart || :
        db_go || :
        if [ -z "${DEBCONF_RECONFIGURE:-}" ]; then
                # only perform the actual restart if we're doing install/upgrade (not during interactive "dpkg-reconfigure")
                db_get docker.io/restart
                if [ "$RET" = 'true' ]; then
                        # Docker daemon appears to be running and should be restarted
                        invoke-rc.d docker restart || :
                fi
        fi
fi
db_stop

# Automatically added by dh_apparmor/2.13.3-7ubuntu5.4
if [ "$1" = "configure" ]; then
    APP_PROFILE="/etc/apparmor.d/docker.io"
    if [ -f "$APP_PROFILE" ]; then
        # Add the local/ include
        LOCAL_APP_PROFILE="/etc/apparmor.d/local/docker.io"

        test -e "$LOCAL_APP_PROFILE" || {
            mkdir -p `dirname "$LOCAL_APP_PROFILE"`
            install --mode 644 /dev/null "$LOCAL_APP_PROFILE"
        }

        # Reload the profile, including any abstraction updates
        if aa-enabled --quiet 2>/dev/null; then
            apparmor_parser -r -T -W "$APP_PROFILE" || true
        fi
    fi
fi
# End automatically added section
# Automatically added by dh_installsystemd/12.10ubuntu1
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	# This will only remove masks created by d-s-h on package removal.
	deb-systemd-helper unmask 'docker.service' >/dev/null || true

	# was-enabled defaults to true, so new installations run enable.
	if deb-systemd-helper --quiet was-enabled 'docker.service'; then
		# Enables the unit on first installation, creates new
		# symlinks on upgrades if the unit file has changed.
		deb-systemd-helper enable 'docker.service' >/dev/null || true
	else
		# Update the statefile to add new symlinks (if any), which need to be
		# cleaned up on purge. Also remove old symlinks.
		deb-systemd-helper update-state 'docker.service' >/dev/null || true
	fi
fi
# End automatically added section
# Automatically added by dh_installsystemd/12.10ubuntu1
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	if [ -d /run/systemd/system ]; then
		systemctl --system daemon-reload >/dev/null || true
		if [ -n "$2" ]; then
			deb-systemd-invoke try-restart 'docker.service' >/dev/null || true
		fi
	fi
fi
# End automatically added section
# Automatically added by dh_installsystemd/12.10ubuntu1
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	# This will only remove masks created by d-s-h on package removal.
	deb-systemd-helper unmask 'docker.socket' >/dev/null || true

	# was-enabled defaults to true, so new installations run enable.
	if deb-systemd-helper --quiet was-enabled 'docker.socket'; then
		# Enables the unit on first installation, creates new
		# symlinks on upgrades if the unit file has changed.
		deb-systemd-helper enable 'docker.socket' >/dev/null || true
	else
		# Update the statefile to add new symlinks (if any), which need to be
		# cleaned up on purge. Also remove old symlinks.
		deb-systemd-helper update-state 'docker.socket' >/dev/null || true
	fi
fi
# End automatically added section
# Automatically added by dh_installsystemd/12.10ubuntu1
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
	if [ -d /run/systemd/system ]; then
		systemctl --system daemon-reload >/dev/null || true
		if [ -n "$2" ]; then
			deb-systemd-invoke try-restart 'docker.socket' >/dev/null || true
		fi
	fi
fi
# End automatically added section


# because we had to use "dh_installinit --no-start", we get to make sure the daemon is started on first install (and upgrades thereafter, if it isn't running)
# (this is adapted from debhelper's "autoscripts/postinst-init")
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ]; then
	if [ -z "${DEBCONF_RECONFIGURE:-}" ] && ! invoke-rc.d docker status > /dev/null 2>&1 ; then
		invoke-rc.d docker start || :
	fi
fi
Private