mirror of
https://github.com/flatcar/scripts.git
synced 2025-10-04 03:51:48 +02:00
Merge pull request #230 from philips/docker-xz
fix(app-emulation/docker): docker now requires xz
This commit is contained in:
commit
36b6776fc6
@ -1,42 +0,0 @@
|
|||||||
# Copyright 2013 The CoreOS Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=5
|
|
||||||
|
|
||||||
inherit systemd git
|
|
||||||
|
|
||||||
DESCRIPTION="Docker container management"
|
|
||||||
HOMEPAGE="http://docker.io"
|
|
||||||
|
|
||||||
EGIT_REPO_SERVER="https://github.com"
|
|
||||||
EGIT_REPO_URI="${EGIT_REPO_SERVER}/philips/docker.git"
|
|
||||||
EGIT_BRANCH="fd045c1038690372a656d45929bfb5e54975a229" # 0.6.1 with Brandon's build system
|
|
||||||
|
|
||||||
|
|
||||||
LICENSE="Apache-2.0"
|
|
||||||
SLOT="0"
|
|
||||||
KEYWORDS="amd64"
|
|
||||||
IUSE=""
|
|
||||||
|
|
||||||
DEPEND=">=dev-lang/go-1.1"
|
|
||||||
RDEPEND="
|
|
||||||
app-emulation/lxc
|
|
||||||
net-misc/bridge-utils
|
|
||||||
sys-apps/iproute2
|
|
||||||
app-arch/libarchive
|
|
||||||
net-misc/curl
|
|
||||||
sys-fs/aufs-util
|
|
||||||
"
|
|
||||||
|
|
||||||
src_compile() {
|
|
||||||
./vendor.sh || die
|
|
||||||
./hack/release/make-without-docker.sh || die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_install() {
|
|
||||||
dobin ${S}/bin/${PN}
|
|
||||||
keepdir /var/lib/${PN}/graph
|
|
||||||
keepdir /var/lib/${PN}/containers
|
|
||||||
systemd_dounit "${FILESDIR}"/${PN}.service || die
|
|
||||||
systemd_enable_service multi-user.target ${PN}.service || die
|
|
||||||
}
|
|
164
sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-0.6.3-r1.ebuild
vendored
Normal file
164
sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-0.6.3-r1.ebuild
vendored
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
# Copyright 1999-2013 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Header: $
|
||||||
|
|
||||||
|
EAPI=5
|
||||||
|
|
||||||
|
DESCRIPTION="Docker complements LXC with a high-level API which operates at the process level."
|
||||||
|
HOMEPAGE="http://www.docker.io/"
|
||||||
|
SRC_URI=""
|
||||||
|
|
||||||
|
EGIT_REPO_URI="git://github.com/dotcloud/docker.git"
|
||||||
|
if [[ ${PV} == *9999 ]]; then
|
||||||
|
KEYWORDS=""
|
||||||
|
else
|
||||||
|
EGIT_COMMIT="v${PV}"
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
inherit bash-completion-r1 git-2 linux-info systemd user
|
||||||
|
|
||||||
|
LICENSE="Apache-2.0"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="doc vim-syntax"
|
||||||
|
|
||||||
|
DEPEND="
|
||||||
|
>=dev-lang/go-1.1.2
|
||||||
|
dev-vcs/git
|
||||||
|
dev-vcs/mercurial
|
||||||
|
doc? (
|
||||||
|
dev-python/sphinx
|
||||||
|
dev-python/sphinxcontrib-httpdomain
|
||||||
|
)
|
||||||
|
"
|
||||||
|
RDEPEND="
|
||||||
|
!app-emulation/lxc-docker-bin
|
||||||
|
>=app-arch/xz-utils-4.9
|
||||||
|
>=app-arch/tar-1.26
|
||||||
|
>=sys-apps/iproute2-3.5
|
||||||
|
>=net-firewall/iptables-1.4
|
||||||
|
>=app-emulation/lxc-0.8
|
||||||
|
>=dev-vcs/git-1.7
|
||||||
|
|| (
|
||||||
|
sys-fs/aufs3
|
||||||
|
sys-kernel/aufs-sources
|
||||||
|
)
|
||||||
|
"
|
||||||
|
|
||||||
|
RESTRICT="strip"
|
||||||
|
|
||||||
|
DOCKERFILE_VIM_S="${WORKDIR}/dockerfile.vim"
|
||||||
|
|
||||||
|
# TODO AUFS will be replaced with device-mapper (sys-fs/lvm2[static-libs]) in 0.7
|
||||||
|
ERROR_AUFS_FS="AUFS_FS is required to be set if and only if aufs-sources are used"
|
||||||
|
|
||||||
|
ERROR_MEMCG_SWAP="MEMCG_SWAP is required if you wish to limit swap usage of containers"
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
CONFIG_CHECK+=" ~AUFS_FS ~BRIDGE ~MEMCG_SWAP ~NETFILTER_XT_MATCH_ADDRTYPE ~NF_NAT ~NF_NAT_NEEDED"
|
||||||
|
check_extra_config
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
git-2_src_unpack
|
||||||
|
|
||||||
|
if use vim-syntax; then
|
||||||
|
( # subshell to prevent environment leakage (and confusion of smart-live-rebuild)
|
||||||
|
EGIT_SOURCEDIR="${DOCKERFILE_VIM_S}"
|
||||||
|
EGIT_PROJECT="honza-dockerfile.vim.git"
|
||||||
|
EGIT_REPO_URI="https://github.com/honza/dockerfile.vim.git"
|
||||||
|
EGIT_MASTER="master"
|
||||||
|
EGIT_BRANCH="${EGIT_MASTER}"
|
||||||
|
EGIT_COMMIT="${EGIT_BRANCH}"
|
||||||
|
EGIT_NOUNPACK="true"
|
||||||
|
git-2_src_unpack
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
export CGO_ENABLED=0 # we need static linking!
|
||||||
|
|
||||||
|
export GOPATH="${WORKDIR}/gopath"
|
||||||
|
mkdir -p "$GOPATH" || die
|
||||||
|
|
||||||
|
# copy GOROOT so we can build it without cgo and not modify anything in the REAL_GOROOT
|
||||||
|
REAL_GOROOT="$(go env GOROOT)"
|
||||||
|
export GOROOT="${WORKDIR}/goroot"
|
||||||
|
rm -rf "$GOROOT" || die
|
||||||
|
cp -R "$REAL_GOROOT" "$GOROOT" || die
|
||||||
|
|
||||||
|
# recompile GOROOT to be cgo-less and thus static-able (especially net package)
|
||||||
|
go install -a -v std || die
|
||||||
|
|
||||||
|
# make sure docker itself is in our shiny new GOPATH
|
||||||
|
mkdir -p "${GOPATH}/src/github.com/dotcloud" || die
|
||||||
|
ln -sf "$(pwd -P)" "${GOPATH}/src/github.com/dotcloud/docker" || die
|
||||||
|
|
||||||
|
# we need our vendored deps, too
|
||||||
|
export GOPATH="$GOPATH:$(pwd -P)/vendor"
|
||||||
|
|
||||||
|
# time to build!
|
||||||
|
./hack/make.sh binary || die
|
||||||
|
|
||||||
|
# now copy the binary to a consistent location that doesn't involve the current version number
|
||||||
|
mkdir -p bin || die
|
||||||
|
VERSION=$(cat ./VERSION)
|
||||||
|
cp -v bundles/$VERSION/binary/docker-$VERSION bin/docker || die
|
||||||
|
|
||||||
|
if use doc; then
|
||||||
|
emake -C docs docs man || die
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
dobin bin/docker
|
||||||
|
dodoc AUTHORS CONTRIBUTING.md CHANGELOG.md MAINTAINERS NOTICE README.md
|
||||||
|
|
||||||
|
newinitd "${FILESDIR}/docker-r2.initd" docker
|
||||||
|
newconfd "${FILESDIR}/docker-r2.confd" docker
|
||||||
|
|
||||||
|
systemd_dounit "${FILESDIR}/docker.service"
|
||||||
|
|
||||||
|
insinto /usr/share/${P}/contrib
|
||||||
|
doins contrib/README
|
||||||
|
cp -R "${S}/contrib"/* "${D}/usr/share/${P}/contrib/"
|
||||||
|
|
||||||
|
newbashcomp contrib/docker.bash docker
|
||||||
|
|
||||||
|
if use doc; then
|
||||||
|
dohtml -r docs/_build/html/*
|
||||||
|
doman docs/_build/man/*
|
||||||
|
fi
|
||||||
|
|
||||||
|
if use vim-syntax; then
|
||||||
|
insinto /usr/share/vim/vimfiles
|
||||||
|
doins -r "${DOCKERFILE_VIM_S}/ftdetect"
|
||||||
|
doins -r "${DOCKERFILE_VIM_S}/syntax"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
elog ""
|
||||||
|
elog "To use docker, the docker daemon must be running as root. To automatically"
|
||||||
|
elog "start the docker daemon at boot, add docker to the default runlevel:"
|
||||||
|
elog " rc-update add docker default"
|
||||||
|
elog "Similarly for systemd:"
|
||||||
|
elog " systemctl enable docker.service"
|
||||||
|
elog ""
|
||||||
|
|
||||||
|
# create docker group if the code checking for it in /etc/group exists
|
||||||
|
enewgroup docker
|
||||||
|
|
||||||
|
elog "To use docker as a non-root user, add yourself to the docker group."
|
||||||
|
elog ""
|
||||||
|
|
||||||
|
ewarn ""
|
||||||
|
ewarn "If you want your containers to have access to the public internet or even"
|
||||||
|
ewarn "the existing private network, IP Forwarding must be enabled:"
|
||||||
|
ewarn " sysctl -w net.ipv4.ip_forward=1"
|
||||||
|
ewarn "or more permanently:"
|
||||||
|
ewarn " echo net.ipv4.ip_forward = 1 > /etc/sysctl.d/${PN}.conf"
|
||||||
|
ewarn "Please be mindful of the security implications of enabling IP Forwarding."
|
||||||
|
ewarn ""
|
||||||
|
}
|
18
sdk_container/src/third_party/coreos-overlay/app-emulation/docker/files/docker-r2.confd
vendored
Normal file
18
sdk_container/src/third_party/coreos-overlay/app-emulation/docker/files/docker-r2.confd
vendored
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# /etc/conf.d/docker: config file for /etc/init.d/docker
|
||||||
|
|
||||||
|
# where the docker daemon output gets piped
|
||||||
|
#DOCKER_LOGFILE="/var/log/docker.log"
|
||||||
|
|
||||||
|
# where docker's pid get stored
|
||||||
|
#DOCKER_PIDFILE="/run/docker.pid"
|
||||||
|
|
||||||
|
# where the docker daemon itself is run from
|
||||||
|
#DOCKER_BINARY="/usr/bin/docker"
|
||||||
|
|
||||||
|
# uncomment this for a simple workaround to
|
||||||
|
# https://github.com/dotcloud/docker/issues/1422
|
||||||
|
#DOCKER_WORKAROUND_1422="1"
|
||||||
|
|
||||||
|
# if you find that the default DOCKER_WORKAROUND_1422 delay of one second
|
||||||
|
# is not sufficient, try uncommenting and increasing this value
|
||||||
|
#DOCKER_WORKAROUND_1422_DELAY="1"
|
56
sdk_container/src/third_party/coreos-overlay/app-emulation/docker/files/docker-r2.initd
vendored
Executable file
56
sdk_container/src/third_party/coreos-overlay/app-emulation/docker/files/docker-r2.initd
vendored
Executable file
@ -0,0 +1,56 @@
|
|||||||
|
#!/sbin/runscript
|
||||||
|
# Copyright 1999-2013 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Header: /var/cvsroot/gentoo-x86/app-emulation/docker/files/docker-r2.initd,v 1.1 2013/09/25 03:22:15 gregkh Exp $
|
||||||
|
|
||||||
|
DOCKER_LOGFILE=${DOCKER_LOGFILE:-/var/log/${SVCNAME}.log}
|
||||||
|
DOCKER_PIDFILE=${DOCKER_PIDFILE:-/run/${SVCNAME}.pid}
|
||||||
|
DOCKER_BINARY=${DOCKER_BINARY:-/usr/bin/docker}
|
||||||
|
DOCKER_WORKAROUND_1422=${DOCKER_WORKAROUND_1422:-0}
|
||||||
|
DOCKER_WORKAROUND_1422_DELAY=${DOCKER_WORKAROUND_1422_DELAY:-1}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
touch "$DOCKER_LOGFILE"
|
||||||
|
chown root:docker "$DOCKER_LOGFILE"
|
||||||
|
chmod 0644 "$DOCKER_LOGFILE"
|
||||||
|
|
||||||
|
ebegin "Starting docker daemon"
|
||||||
|
start-stop-daemon --start --background \
|
||||||
|
--exec "$DOCKER_BINARY" \
|
||||||
|
--pidfile "$DOCKER_PIDFILE" \
|
||||||
|
--stdout "$DOCKER_LOGFILE" \
|
||||||
|
--stderr "$DOCKER_LOGFILE" \
|
||||||
|
-- -d -p "$DOCKER_PIDFILE"
|
||||||
|
eend $?
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if [ $ret -eq 0 ] \
|
||||||
|
&& [ "$DOCKER_WORKAROUND_1422" ] \
|
||||||
|
&& [ "$DOCKER_WORKAROUND_1422" -gt 0 ] \
|
||||||
|
; then
|
||||||
|
# see https://github.com/dotcloud/docker/issues/1422
|
||||||
|
ewarn "Working around gh#1422 (via busybox image); this may take a moment"
|
||||||
|
|
||||||
|
# we were calling "docker run" more quickly than "docker -d" could get
|
||||||
|
# fired up, so our workaround wasn't successful without a short delay
|
||||||
|
sleep $DOCKER_WORKAROUND_1422_DELAY
|
||||||
|
|
||||||
|
# TODO when we get https://github.com/dotcloud/docker/pull/1589, these
|
||||||
|
# both need -rm so we clean up after ourselves (thanks, @eliasp!)
|
||||||
|
docker run -i -t busybox true &> /dev/null || true
|
||||||
|
# first run will fail, so we ignore its output and result and run again
|
||||||
|
docker run -i -t busybox true
|
||||||
|
|
||||||
|
ewend $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
return $ret
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
ebegin "Stopping docker daemon"
|
||||||
|
start-stop-daemon --stop \
|
||||||
|
--exec "$DOCKER_BINARY" \
|
||||||
|
--pidfile "$DOCKER_PIDFILE"
|
||||||
|
eend $?
|
||||||
|
}
|
31
sdk_container/src/third_party/coreos-overlay/app-emulation/docker/files/docker.initd
vendored
Executable file
31
sdk_container/src/third_party/coreos-overlay/app-emulation/docker/files/docker.initd
vendored
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/sbin/runscript
|
||||||
|
# Copyright 1999-2013 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Header: /var/cvsroot/gentoo-x86/app-emulation/docker/files/docker.initd,v 1.1 2013/09/25 03:22:15 gregkh Exp $
|
||||||
|
|
||||||
|
DOCKER_LOGFILE=${DOCKER_LOGFILE:-/var/log/${SVCNAME}.log}
|
||||||
|
DOCKER_PIDFILE=${DOCKER_PIDFILE:-/run/${SVCNAME}.pid}
|
||||||
|
DOCKER_BINARY=${DOCKER_BINARY:-/usr/bin/docker}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
touch "$DOCKER_LOGFILE"
|
||||||
|
chown root:docker "$DOCKER_LOGFILE"
|
||||||
|
chmod 0644 "$DOCKER_LOGFILE"
|
||||||
|
|
||||||
|
ebegin "Starting docker daemon"
|
||||||
|
start-stop-daemon --start --background \
|
||||||
|
--exec "$DOCKER_BINARY" \
|
||||||
|
--pidfile "$DOCKER_PIDFILE" \
|
||||||
|
--stdout "$DOCKER_LOGFILE" \
|
||||||
|
--stderr "$DOCKER_LOGFILE" \
|
||||||
|
-- -d -p "$DOCKER_PIDFILE"
|
||||||
|
eend $?
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
ebegin "Stopping docker daemon"
|
||||||
|
start-stop-daemon --stop \
|
||||||
|
--exec "$DOCKER_BINARY" \
|
||||||
|
--pidfile "$DOCKER_PIDFILE"
|
||||||
|
eend $?
|
||||||
|
}
|
@ -1,15 +1,13 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Docker - The Linux Container Engine
|
||||||
|
Requires=network.target
|
||||||
|
After=multi-user.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
ExecStartPre=/bin/mount --make-rprivate /
|
ExecStartPre=/bin/mount --make-rprivate /
|
||||||
|
ExecStart=/usr/bin/docker -d
|
||||||
# Try to use this alternate way of starting docker if docker crashes for you:
|
TimeoutSec=60
|
||||||
# ExecStart=/bin/bash -c "/usr/bin/nohup /usr/bin/docker -d -D &"
|
|
||||||
# You also need to update Type above to: Type=forking
|
|
||||||
|
|
||||||
ExecStart=/usr/bin/docker -d -D
|
|
||||||
|
|
||||||
Restart=always
|
|
||||||
RestartSec=1
|
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
Loading…
x
Reference in New Issue
Block a user