mirror of
https://github.com/flatcar/scripts.git
synced 2025-10-17 10:21:17 +02:00
docker: add wrapper for detecting storage driver and bump to 1.4
The new dockerd wrapper script does its best to select between the btrfs and overlay backends based on the filesystem mounted at /var/lib/docker. The new 1.4 version will remain marked as ~amd64 for testing purposes until we stabilize its dependencies, including Linux 3.18.x.
This commit is contained in:
parent
63c8b70513
commit
80c75cf4b5
1
sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-1.4.0.ebuild
vendored
Symbolic link
1
sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-1.4.0.ebuild
vendored
Symbolic link
@ -0,0 +1 @@
|
||||
docker-9999.ebuild
|
@ -28,6 +28,7 @@ IUSE="aufs +btrfs contrib +device-mapper doc lxc vim-syntax zsh-completion"
|
||||
|
||||
# https://github.com/docker/docker/blob/master/hack/PACKAGERS.md#build-dependencies
|
||||
CDEPEND="
|
||||
>=sys-kernel/coreos-kernel-3.18.0
|
||||
>=dev-db/sqlite-3.7.9:3
|
||||
device-mapper? (
|
||||
>=sys-fs/lvm2-2.02.89[thin]
|
||||
@ -186,6 +187,9 @@ src_install() {
|
||||
newinitd contrib/init/openrc/docker.initd docker
|
||||
newconfd contrib/init/openrc/docker.confd docker
|
||||
|
||||
exeinto /usr/lib/coreos
|
||||
doexe "${FILESDIR}/dockerd"
|
||||
|
||||
systemd_newunit "${FILESDIR}/docker.service-r1" "docker.service"
|
||||
systemd_dounit "${FILESDIR}/docker.socket"
|
||||
systemd_newunit "${FILESDIR}/early-docker.service-r1" "early-docker.service"
|
||||
|
@ -6,12 +6,11 @@ Requires=docker.socket early-docker.target
|
||||
|
||||
[Service]
|
||||
Environment=TMPDIR=/var/tmp
|
||||
Environment=DOCKER_DRIVER=btrfs
|
||||
Environment=DOCKER_OPTS='--insecure-registry="0.0.0.0/0"'
|
||||
EnvironmentFile=-/run/docker_opts.env
|
||||
LimitNOFILE=1048576
|
||||
LimitNPROC=1048576
|
||||
ExecStart=/usr/bin/docker --daemon --host=fd:// $DOCKER_OPTS
|
||||
ExecStart=/usr/lib/coreos/dockerd --daemon --host=fd:// $DOCKER_OPTS
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
67
sdk_container/src/third_party/coreos-overlay/app-emulation/docker/files/dockerd
vendored
Normal file
67
sdk_container/src/third_party/coreos-overlay/app-emulation/docker/files/dockerd
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
#!/bin/bash
|
||||
# Wrapper for launching docker daemons with an appropriate backend.
|
||||
|
||||
set -e
|
||||
|
||||
parse_docker_args() {
|
||||
local flag value
|
||||
while [[ $# -gt 0 ]]; do
|
||||
flag="$1"
|
||||
shift
|
||||
|
||||
# treat --flag=foo and --flag foo identically
|
||||
if [[ "${flag}" == *=* ]]; then
|
||||
flag="${flag%=*}"
|
||||
set -- "${flag#*=}" "$@"
|
||||
fi
|
||||
|
||||
case "${flag}" in
|
||||
-g|--graph)
|
||||
ARG_ROOT="$1"
|
||||
shift
|
||||
;;
|
||||
-s|--storage-driver)
|
||||
ARG_DRIVER="$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
# ignore everything else
|
||||
;;
|
||||
esac
|
||||
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) # As of 3.18
|
||||
export DOCKER_DRIVER=overlay
|
||||
;;
|
||||
*)
|
||||
# Fall back to whatever docker's default behavior is.
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
ARG_ROOT="/var/lib/docker"
|
||||
ARG_DRIVER=""
|
||||
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
|
||||
|
||||
exec docker "$@"
|
@ -6,10 +6,9 @@ Requires=early-docker.socket
|
||||
|
||||
[Service]
|
||||
Environment=TMPDIR=/var/tmp
|
||||
Environment=DOCKER_DRIVER=btrfs
|
||||
LimitNOFILE=1048576
|
||||
LimitNPROC=1048576
|
||||
ExecStart=/usr/bin/docker --daemon --host=fd:// --bridge=none --iptables=false --ip-masq=false --graph=/var/lib/early-docker --pidfile=/var/run/early-docker.pid
|
||||
ExecStart=/usr/lib/coreos/dockerd --daemon --host=fd:// --bridge=none --iptables=false --ip-masq=false --graph=/var/lib/early-docker --pidfile=/var/run/early-docker.pid
|
||||
|
||||
[Install]
|
||||
WantedBy=early-docker.target
|
||||
|
Loading…
x
Reference in New Issue
Block a user