mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-22 23:11:07 +02:00
Merge pull request #2562 from euank/fixup-docker
deprecate dockerd script, misc fixups
This commit is contained in:
commit
d10b74b1cf
@ -7,9 +7,9 @@ EAPI=5
|
|||||||
CROS_WORKON_PROJECT="coreos/docker"
|
CROS_WORKON_PROJECT="coreos/docker"
|
||||||
CROS_WORKON_LOCALNAME="docker"
|
CROS_WORKON_LOCALNAME="docker"
|
||||||
CROS_WORKON_REPO="git://github.com"
|
CROS_WORKON_REPO="git://github.com"
|
||||||
COREOS_GO_VERSION="go1.6"
|
COREOS_GO_VERSION="go1.7"
|
||||||
|
|
||||||
CROS_WORKON_COMMIT="d5236f0452873048a28c1ecd63d40513efa66542" # coreos-1.12.6
|
CROS_WORKON_COMMIT="a82d35e3daba1a2cd48c66e57a4f9975c39c45c6" # coreos-1.12.6
|
||||||
DOCKER_GITCOMMIT="${CROS_WORKON_COMMIT:0:7}"
|
DOCKER_GITCOMMIT="${CROS_WORKON_COMMIT:0:7}"
|
||||||
KEYWORDS="amd64 arm64"
|
KEYWORDS="amd64 arm64"
|
||||||
|
|
||||||
@ -248,9 +248,6 @@ src_compile() {
|
|||||||
unset DOCKER_EXPERIMENTAL
|
unset DOCKER_EXPERIMENTAL
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# disable optimizations due to https://github.com/golang/go/issues/14669
|
|
||||||
CFLAGS+=" -O0"
|
|
||||||
|
|
||||||
go_export
|
go_export
|
||||||
|
|
||||||
# verbose building
|
# verbose building
|
||||||
@ -273,6 +270,7 @@ src_install() {
|
|||||||
newconfd contrib/init/openrc/docker.confd docker
|
newconfd contrib/init/openrc/docker.confd docker
|
||||||
|
|
||||||
exeinto /usr/lib/coreos
|
exeinto /usr/lib/coreos
|
||||||
|
# Create /usr/lib/coreos/dockerd script for backwards compatibility
|
||||||
doexe "${FILESDIR}/dockerd"
|
doexe "${FILESDIR}/dockerd"
|
||||||
|
|
||||||
systemd_dounit "${FILESDIR}/docker.service"
|
systemd_dounit "${FILESDIR}/docker.service"
|
@ -1,6 +1,5 @@
|
|||||||
# Copyright 1999-2015 Gentoo Foundation
|
# Copyright 1999-2017 Gentoo Foundation
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
# $Id$
|
|
||||||
|
|
||||||
EAPI=5
|
EAPI=5
|
||||||
|
|
||||||
@ -24,8 +23,7 @@ DESCRIPTION="Docker complements kernel namespacing with a high-level API which o
|
|||||||
HOMEPAGE="https://dockerproject.org"
|
HOMEPAGE="https://dockerproject.org"
|
||||||
LICENSE="Apache-2.0"
|
LICENSE="Apache-2.0"
|
||||||
SLOT="0"
|
SLOT="0"
|
||||||
IUSE="apparmor aufs +btrfs contrib +device-mapper experimental +overlay seccomp
|
IUSE="apparmor aufs +btrfs +container-init +device-mapper +overlay pkcs11 +journald seccomp +selinux vim-syntax zsh-completion"
|
||||||
+selinux vim-syntax zsh-completion +journald"
|
|
||||||
|
|
||||||
# https://github.com/docker/docker/blob/v17.04.0-ce/project/PACKAGERS.md#build-dependencies
|
# https://github.com/docker/docker/blob/v17.04.0-ce/project/PACKAGERS.md#build-dependencies
|
||||||
CDEPEND="
|
CDEPEND="
|
||||||
@ -36,9 +34,6 @@ CDEPEND="
|
|||||||
seccomp? (
|
seccomp? (
|
||||||
>=sys-libs/libseccomp-2.2.1[static-libs]
|
>=sys-libs/libseccomp-2.2.1[static-libs]
|
||||||
)
|
)
|
||||||
journald? (
|
|
||||||
>=sys-apps/systemd-225
|
|
||||||
)
|
|
||||||
"
|
"
|
||||||
|
|
||||||
DEPEND="
|
DEPEND="
|
||||||
@ -69,6 +64,7 @@ RDEPEND="
|
|||||||
=app-emulation/containerd-0.2.3_p109[seccomp?]
|
=app-emulation/containerd-0.2.3_p109[seccomp?]
|
||||||
=app-emulation/runc-1.0.0_rc2_p137[apparmor?,seccomp?]
|
=app-emulation/runc-1.0.0_rc2_p137[apparmor?,seccomp?]
|
||||||
app-emulation/docker-proxy
|
app-emulation/docker-proxy
|
||||||
|
container-init? ( >=sys-process/tini-0.13.1 )
|
||||||
"
|
"
|
||||||
|
|
||||||
RESTRICT="installsources strip"
|
RESTRICT="installsources strip"
|
||||||
@ -77,24 +73,29 @@ RESTRICT="installsources strip"
|
|||||||
CONFIG_CHECK="
|
CONFIG_CHECK="
|
||||||
~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
|
~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
|
||||||
~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG
|
~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG
|
||||||
~KEYS ~MACVLAN ~VETH ~BRIDGE ~BRIDGE_NETFILTER
|
~KEYS
|
||||||
~NF_NAT_IPV4 ~IP_NF_FILTER ~IP_NF_MANGLE ~IP_NF_TARGET_MASQUERADE
|
~VETH ~BRIDGE ~BRIDGE_NETFILTER
|
||||||
~IP_VS ~IP_VS_RR
|
~NF_NAT_IPV4 ~IP_NF_FILTER ~IP_NF_TARGET_MASQUERADE
|
||||||
~NETFILTER_XT_MATCH_ADDRTYPE ~NETFILTER_XT_MATCH_CONNTRACK
|
~NETFILTER_XT_MATCH_ADDRTYPE ~NETFILTER_XT_MATCH_CONNTRACK
|
||||||
~NETFILTER_XT_MATCH_IPVS
|
|
||||||
~NETFILTER_XT_MARK ~NETFILTER_XT_TARGET_REDIRECT
|
|
||||||
~NF_NAT ~NF_NAT_NEEDED
|
~NF_NAT ~NF_NAT_NEEDED
|
||||||
|
|
||||||
~POSIX_MQUEUE
|
~POSIX_MQUEUE
|
||||||
|
|
||||||
|
~USER_NS
|
||||||
|
~SECCOMP
|
||||||
|
~CGROUP_PIDS
|
||||||
~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
|
~MEMCG_SWAP ~MEMCG_SWAP_ENABLED
|
||||||
|
|
||||||
~BLK_CGROUP ~IOSCHED_CFQ
|
~BLK_CGROUP ~BLK_DEV_THROTTLING ~IOSCHED_CFQ ~CFQ_GROUP_IOSCHED
|
||||||
~CGROUP_PERF
|
~CGROUP_PERF
|
||||||
~CGROUP_HUGETLB
|
~CGROUP_HUGETLB
|
||||||
~NET_CLS_CGROUP
|
~NET_CLS_CGROUP
|
||||||
~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED
|
~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED
|
||||||
|
~IP_VS ~IP_VS_PROTO_TCP ~IP_VS_PROTO_UDP ~IP_VS_NFCT ~IP_VS_RR
|
||||||
|
|
||||||
|
~VXLAN
|
||||||
~XFRM_ALGO ~XFRM_USER
|
~XFRM_ALGO ~XFRM_USER
|
||||||
|
~IPVLAN
|
||||||
|
~MACVLAN ~DUMMY
|
||||||
"
|
"
|
||||||
|
|
||||||
ERROR_KEYS="CONFIG_KEYS: is mandatory"
|
ERROR_KEYS="CONFIG_KEYS: is mandatory"
|
||||||
@ -112,7 +113,7 @@ pkg_setup() {
|
|||||||
if kernel_is lt 3 10; then
|
if kernel_is lt 3 10; then
|
||||||
ewarn ""
|
ewarn ""
|
||||||
ewarn "Using Docker with kernels older than 3.10 is unstable and unsupported."
|
ewarn "Using Docker with kernels older than 3.10 is unstable and unsupported."
|
||||||
ewarn " - http://docs.docker.com/installation/binaries/#check-kernel-dependencies"
|
ewarn " - http://docs.docker.com/engine/installation/binaries/#check-kernel-dependencies"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# for where these kernel versions come from, see:
|
# for where these kernel versions come from, see:
|
||||||
@ -170,6 +171,7 @@ pkg_setup() {
|
|||||||
if use btrfs; then
|
if use btrfs; then
|
||||||
CONFIG_CHECK+="
|
CONFIG_CHECK+="
|
||||||
~BTRFS_FS
|
~BTRFS_FS
|
||||||
|
~BTRFS_FS_POSIX_ACL
|
||||||
"
|
"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -185,12 +187,6 @@ pkg_setup() {
|
|||||||
"
|
"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if use seccomp; then
|
|
||||||
CONFIG_CHECK+="
|
|
||||||
~SECCOMP
|
|
||||||
"
|
|
||||||
fi
|
|
||||||
|
|
||||||
linux-info_pkg_setup
|
linux-info_pkg_setup
|
||||||
|
|
||||||
# create docker group for the code checking for it in /etc/group
|
# create docker group for the code checking for it in /etc/group
|
||||||
@ -234,29 +230,12 @@ src_compile() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
for tag in apparmor seccomp selinux journald; do
|
for tag in apparmor pkcs11 seccomp selinux journald; do
|
||||||
if use $tag; then
|
if use $tag; then
|
||||||
DOCKER_BUILDTAGS+=" $tag"
|
DOCKER_BUILDTAGS+=" $tag"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if has_version '<sys-fs/lvm2-2.02.110' ; then
|
|
||||||
# Docker uses the host files when testing features, so force
|
|
||||||
# docker to not use dm_task_deferred_remove to cover cross
|
|
||||||
# builds.
|
|
||||||
DOCKER_BUILDTAGS+=' libdm_no_deferred_remove'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# https://github.com/docker/docker/pull/13338
|
|
||||||
if use experimental; then
|
|
||||||
export DOCKER_EXPERIMENTAL=1
|
|
||||||
else
|
|
||||||
unset DOCKER_EXPERIMENTAL
|
|
||||||
fi
|
|
||||||
|
|
||||||
# disable optimizations due to https://github.com/golang/go/issues/14669
|
|
||||||
CFLAGS+=" -O0"
|
|
||||||
|
|
||||||
go_export
|
go_export
|
||||||
|
|
||||||
# verbose building
|
# verbose building
|
||||||
@ -273,11 +252,13 @@ src_install() {
|
|||||||
dosym containerd /usr/bin/docker-containerd
|
dosym containerd /usr/bin/docker-containerd
|
||||||
dosym containerd-shim /usr/bin/docker-containerd-shim
|
dosym containerd-shim /usr/bin/docker-containerd-shim
|
||||||
dosym runc /usr/bin/docker-runc
|
dosym runc /usr/bin/docker-runc
|
||||||
|
use container-init && dosym tini /usr/bin/docker-init
|
||||||
|
|
||||||
newinitd contrib/init/openrc/docker.initd docker
|
newinitd contrib/init/openrc/docker.initd docker
|
||||||
newconfd contrib/init/openrc/docker.confd docker
|
newconfd contrib/init/openrc/docker.confd docker
|
||||||
|
|
||||||
exeinto /usr/lib/coreos
|
exeinto /usr/lib/coreos
|
||||||
|
# Create /usr/lib/coreos/dockerd for backwards compatibility
|
||||||
doexe "${FILESDIR}/dockerd"
|
doexe "${FILESDIR}/dockerd"
|
||||||
|
|
||||||
systemd_dounit "${FILESDIR}/docker.service"
|
systemd_dounit "${FILESDIR}/docker.service"
|
||||||
@ -304,12 +285,6 @@ src_install() {
|
|||||||
doins -r contrib/syntax/vim/ftdetect
|
doins -r contrib/syntax/vim/ftdetect
|
||||||
doins -r contrib/syntax/vim/syntax
|
doins -r contrib/syntax/vim/syntax
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if use contrib; then
|
|
||||||
# note: intentionally not using "doins" so that we preserve +x bits
|
|
||||||
mkdir -p "${D}/usr/share/${PN}/contrib"
|
|
||||||
cp -R contrib/* "${D}/usr/share/${PN}/contrib"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pkg_postinst() {
|
pkg_postinst() {
|
||||||
|
@ -1,17 +1,19 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Docker Application Container Engine
|
Description=Docker Application Container Engine
|
||||||
Documentation=http://docs.docker.com
|
Documentation=http://docs.docker.com
|
||||||
After=containerd.service docker.socket network.target
|
After=containerd.service docker.socket network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
Requires=containerd.service docker.socket
|
Requires=containerd.service docker.socket
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=notify
|
Type=notify
|
||||||
EnvironmentFile=-/run/flannel/flannel_docker_opts.env
|
EnvironmentFile=-/run/flannel/flannel_docker_opts.env
|
||||||
|
Environment=DOCKER_SELINUX=--selinux-enabled=true
|
||||||
|
|
||||||
# the default is not to use systemd for cgroups because the delegate issues still
|
# the default is not to use systemd for cgroups because the delegate issues still
|
||||||
# exists and systemd currently does not support the cgroup feature set required
|
# exists and systemd currently does not support the cgroup feature set required
|
||||||
# for containers run by docker
|
# for containers run by docker
|
||||||
ExecStart=/usr/lib/coreos/dockerd --host=fd:// --containerd=/var/run/docker/libcontainerd/docker-containerd.sock $DOCKER_OPTS $DOCKER_CGROUPS $DOCKER_OPT_BIP $DOCKER_OPT_MTU $DOCKER_OPT_IPMASQ
|
ExecStart=/usr/bin/dockerd --host=fd:// --containerd=/var/run/docker/libcontainerd/docker-containerd.sock $DOCKER_SELINUX $DOCKER_OPTS $DOCKER_CGROUPS $DOCKER_OPT_BIP $DOCKER_OPT_MTU $DOCKER_OPT_IPMASQ
|
||||||
ExecReload=/bin/kill -s HUP $MAINPID
|
ExecReload=/bin/kill -s HUP $MAINPID
|
||||||
LimitNOFILE=1048576
|
LimitNOFILE=1048576
|
||||||
# Having non-zero Limit*s causes performance problems due to accounting overhead
|
# Having non-zero Limit*s causes performance problems due to accounting overhead
|
||||||
@ -24,6 +26,12 @@ TasksMax=infinity
|
|||||||
TimeoutStartSec=0
|
TimeoutStartSec=0
|
||||||
# set delegate yes so that systemd does not reset the cgroups of docker containers
|
# set delegate yes so that systemd does not reset the cgroups of docker containers
|
||||||
Delegate=yes
|
Delegate=yes
|
||||||
|
# kill only the docker process, not all processes in the cgroup
|
||||||
|
KillMode=process
|
||||||
|
# restart the docker process if it exits prematurely
|
||||||
|
Restart=on-failure
|
||||||
|
StartLimitBurst=3
|
||||||
|
StartLimitInterval=60s
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
@ -5,7 +5,7 @@ PartOf=docker.service
|
|||||||
[Socket]
|
[Socket]
|
||||||
ListenStream=/var/run/docker.sock
|
ListenStream=/var/run/docker.sock
|
||||||
SocketMode=0660
|
SocketMode=0660
|
||||||
SocketUser=docker
|
SocketUser=root
|
||||||
SocketGroup=docker
|
SocketGroup=docker
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Wrapper for launching docker daemons with an appropriate backend.
|
# Wrapper for launching docker daemons with selinux default on
|
||||||
|
# This wrapper script has been deprecated (euank: 2017-05-09) and is retained
|
||||||
|
# for backwards compatibility.
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
@ -16,14 +18,6 @@ parse_docker_args() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
case "${flag}" in
|
case "${flag}" in
|
||||||
-g|--graph)
|
|
||||||
ARG_ROOT="$1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
-s|--storage-driver)
|
|
||||||
ARG_DRIVER="$1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--selinux-enabled)
|
--selinux-enabled)
|
||||||
ARG_SELINUX="$1"
|
ARG_SELINUX="$1"
|
||||||
shift
|
shift
|
||||||
@ -35,56 +29,13 @@ parse_docker_args() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
select_docker_driver() {
|
|
||||||
local fstype
|
|
||||||
|
|
||||||
# mimic docker's behavior to ensure we stat the right filesystem.
|
|
||||||
if [[ -L "${ARG_ROOT}" ]]; then
|
|
||||||
ARG_ROOT="$(readlink -f "${ARG_ROOT}")"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir --parents --mode=0700 "${ARG_ROOT}"
|
|
||||||
fstype=$(findmnt --noheadings --output FSTYPE --target "${ARG_ROOT}")
|
|
||||||
|
|
||||||
case "${fstype}" in
|
|
||||||
btrfs)
|
|
||||||
export DOCKER_DRIVER=btrfs
|
|
||||||
;;
|
|
||||||
ext4|tmpfs|xfs) # As of 4.1
|
|
||||||
export DOCKER_DRIVER=overlay
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Fall back to whatever docker's default behavior is.
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
# Enable selinux except when known to be unsupported (btrfs).
|
|
||||||
maybe_enable_selinux() {
|
|
||||||
case "${DOCKER_DRIVER}" in
|
|
||||||
btrfs)
|
|
||||||
USE_SELINUX=""
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Enable for everything else.
|
|
||||||
USE_SELINUX="--selinux-enabled"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
ARG_ROOT="/var/lib/docker"
|
|
||||||
ARG_DRIVER=""
|
|
||||||
parse_docker_args "$@"
|
parse_docker_args "$@"
|
||||||
|
|
||||||
# Do not override the driver if it is already explicitly configured.
|
|
||||||
if [[ -z "${ARG_DRIVER}" && -z "${DOCKER_DRIVER}" ]]; then
|
|
||||||
select_docker_driver
|
|
||||||
fi
|
|
||||||
|
|
||||||
USE_SELINUX=""
|
USE_SELINUX=""
|
||||||
# Do not override selinux if it is already explicitly configured.
|
# Do not override selinux if it is already explicitly configured.
|
||||||
if [[ -z "${ARG_SELINUX}" ]]; then
|
if [[ -z "${ARG_SELINUX}" ]]; then
|
||||||
maybe_enable_selinux
|
# If unspecified, default on
|
||||||
|
USE_SELINUX="--selinux-enabled"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec dockerd "$@" ${USE_SELINUX}
|
exec dockerd "$@" ${USE_SELINUX}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user