mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
aea7418d8a
This reverts commit c81bb20f5b
.
After re-reading the documentation: "The Recommends field should list packages that would be found together with this one in all but unusual installations."
Thus, "Recommends" is an acceptable place for this dep, and anyone disabling that gets to keep the pieces.
The main crux of why this needs to be reverted is because it breaks Debian completely because "lxc" and "cgroup-bin" can't be installed concurrently.
131 lines
3.8 KiB
Bash
131 lines
3.8 KiB
Bash
#!/bin/bash
|
|
|
|
DEST=$1
|
|
|
|
PKGVERSION="$VERSION"
|
|
if [ -n "$(git status --porcelain)" ]; then
|
|
PKGVERSION="$PKGVERSION-$(date +%Y%m%d%H%M%S)-$GITCOMMIT"
|
|
fi
|
|
|
|
PACKAGE_ARCHITECTURE="$(dpkg-architecture -qDEB_HOST_ARCH)"
|
|
PACKAGE_URL="http://www.docker.io/"
|
|
PACKAGE_MAINTAINER="docker@dotcloud.com"
|
|
PACKAGE_DESCRIPTION="Linux container runtime
|
|
Docker complements LXC with a high-level API which operates at the process
|
|
level. It runs unix processes with strong guarantees of isolation and
|
|
repeatability across servers.
|
|
Docker is a great building block for automating distributed systems:
|
|
large-scale web deployments, database clusters, continuous deployment systems,
|
|
private PaaS, service-oriented architectures, etc."
|
|
|
|
# Build docker as an ubuntu package using FPM and REPREPRO (sue me).
|
|
# bundle_binary must be called first.
|
|
bundle_ubuntu() {
|
|
DIR=$DEST/build
|
|
|
|
# Include our init scripts
|
|
mkdir -p $DIR/etc
|
|
cp -R contrib/init/upstart $DIR/etc/init
|
|
cp -R contrib/init/sysvinit $DIR/etc/init.d
|
|
mkdir -p $DIR/lib/systemd
|
|
cp -R contrib/init/systemd $DIR/lib/systemd/system
|
|
|
|
# Copy the binary
|
|
# This will fail if the binary bundle hasn't been built
|
|
mkdir -p $DIR/usr/bin
|
|
# Copy the binary
|
|
# This will fail if the binary bundle hasn't been built
|
|
cp $DEST/../binary/docker-$VERSION $DIR/usr/bin/docker
|
|
|
|
# Generate postinst/prerm/postrm scripts
|
|
cat > /tmp/postinst <<'EOF'
|
|
#!/bin/sh
|
|
set -e
|
|
set -u
|
|
|
|
getent group docker > /dev/null || groupadd --system docker || true
|
|
|
|
update-rc.d docker defaults > /dev/null || true
|
|
if [ -n "$2" ]; then
|
|
_dh_action=restart
|
|
else
|
|
_dh_action=start
|
|
fi
|
|
service docker $_dh_action 2>/dev/null || true
|
|
|
|
#DEBHELPER#
|
|
EOF
|
|
cat > /tmp/prerm <<'EOF'
|
|
#!/bin/sh
|
|
set -e
|
|
set -u
|
|
|
|
service docker stop 2>/dev/null || true
|
|
|
|
#DEBHELPER#
|
|
EOF
|
|
cat > /tmp/postrm <<'EOF'
|
|
#!/bin/sh
|
|
set -e
|
|
set -u
|
|
|
|
if [ "$1" = "purge" ] ; then
|
|
update-rc.d docker remove > /dev/null || true
|
|
fi
|
|
|
|
# In case this system is running systemd, we make systemd reload the unit files
|
|
# to pick up changes.
|
|
if [ -d /run/systemd/system ] ; then
|
|
systemctl --system daemon-reload > /dev/null || true
|
|
fi
|
|
|
|
#DEBHELPER#
|
|
EOF
|
|
# TODO swaths of these were borrowed from debhelper's auto-inserted stuff, because we're still using fpm - we need to use debhelper instead, and somehow reconcile Ubuntu that way
|
|
chmod +x /tmp/postinst /tmp/prerm
|
|
|
|
(
|
|
cd $DEST
|
|
fpm -s dir -C $DIR \
|
|
--name lxc-docker-$VERSION --version $PKGVERSION \
|
|
--after-install /tmp/postinst \
|
|
--before-remove /tmp/prerm \
|
|
--after-remove /tmp/postrm \
|
|
--architecture "$PACKAGE_ARCHITECTURE" \
|
|
--prefix / \
|
|
--depends lxc \
|
|
--depends aufs-tools \
|
|
--depends iptables \
|
|
--description "$PACKAGE_DESCRIPTION" \
|
|
--maintainer "$PACKAGE_MAINTAINER" \
|
|
--conflicts lxc-docker-virtual-package \
|
|
--provides lxc-docker \
|
|
--provides lxc-docker-virtual-package \
|
|
--replaces lxc-docker \
|
|
--replaces lxc-docker-virtual-package \
|
|
--url "$PACKAGE_URL" \
|
|
--vendor "$PACKAGE_VENDOR" \
|
|
--config-files /etc/init/docker.conf \
|
|
--config-files /etc/init.d/docker \
|
|
--config-files /etc/default/docker \
|
|
--deb-compression xz \
|
|
-t deb .
|
|
mkdir empty
|
|
fpm -s dir -C empty \
|
|
--name lxc-docker --version $PKGVERSION \
|
|
--architecture "$PACKAGE_ARCHITECTURE" \
|
|
--depends lxc-docker-$VERSION \
|
|
--description "$PACKAGE_DESCRIPTION" \
|
|
--maintainer "$PACKAGE_MAINTAINER" \
|
|
--url "$PACKAGE_URL" \
|
|
--vendor "$PACKAGE_VENDOR" \
|
|
--config-files /etc/init/docker.conf \
|
|
--config-files /etc/init.d/docker \
|
|
--config-files /etc/default/docker \
|
|
--deb-compression xz \
|
|
-t deb .
|
|
# note: the --config-files lines have to be duplicated to stop overwrite on package upgrade (since we have to use this funky virtual package)
|
|
)
|
|
}
|
|
|
|
bundle_ubuntu
|