add better generate
Signed-off-by: Jess Frazelle <acidburn@microsoft.com>
This commit is contained in:
parent
3fc6abf56b
commit
cdd93563f5
5655 changed files with 1187011 additions and 392 deletions
4
vendor/github.com/docker/docker-ce/components/engine/contrib/README.md
generated
vendored
Normal file
4
vendor/github.com/docker/docker-ce/components/engine/contrib/README.md
generated
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
The `contrib` directory contains scripts, images, and other helpful things
|
||||
which are not part of the core docker distribution. Please note that they
|
||||
could be out of date, since they do not receive the same attention as the
|
||||
rest of the repository.
|
1
vendor/github.com/docker/docker-ce/components/engine/contrib/REVIEWERS
generated
vendored
Normal file
1
vendor/github.com/docker/docker-ce/components/engine/contrib/REVIEWERS
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
Tianon Gravi <admwiggin@gmail.com> (@tianon)
|
56
vendor/github.com/docker/docker-ce/components/engine/contrib/apparmor/main.go
generated
vendored
Normal file
56
vendor/github.com/docker/docker-ce/components/engine/contrib/apparmor/main.go
generated
vendored
Normal file
|
@ -0,0 +1,56 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
"text/template"
|
||||
|
||||
"github.com/docker/docker/pkg/aaparser"
|
||||
)
|
||||
|
||||
type profileData struct {
|
||||
Version int
|
||||
}
|
||||
|
||||
func main() {
|
||||
if len(os.Args) < 2 {
|
||||
log.Fatal("pass a filename to save the profile in.")
|
||||
}
|
||||
|
||||
// parse the arg
|
||||
apparmorProfilePath := os.Args[1]
|
||||
|
||||
version, err := aaparser.GetVersion()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
data := profileData{
|
||||
Version: version,
|
||||
}
|
||||
fmt.Printf("apparmor_parser is of version %+v\n", data)
|
||||
|
||||
// parse the template
|
||||
compiled, err := template.New("apparmor_profile").Parse(dockerProfileTemplate)
|
||||
if err != nil {
|
||||
log.Fatalf("parsing template failed: %v", err)
|
||||
}
|
||||
|
||||
// make sure /etc/apparmor.d exists
|
||||
if err := os.MkdirAll(path.Dir(apparmorProfilePath), 0755); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
f, err := os.OpenFile(apparmorProfilePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
if err := compiled.Execute(f, data); err != nil {
|
||||
log.Fatalf("executing template failed: %v", err)
|
||||
}
|
||||
|
||||
fmt.Printf("created apparmor profile for version %+v at %q\n", data, apparmorProfilePath)
|
||||
}
|
268
vendor/github.com/docker/docker-ce/components/engine/contrib/apparmor/template.go
generated
vendored
Normal file
268
vendor/github.com/docker/docker-ce/components/engine/contrib/apparmor/template.go
generated
vendored
Normal file
|
@ -0,0 +1,268 @@
|
|||
package main
|
||||
|
||||
const dockerProfileTemplate = `@{DOCKER_GRAPH_PATH}=/var/lib/docker
|
||||
|
||||
profile /usr/bin/docker (attach_disconnected, complain) {
|
||||
# Prevent following links to these files during container setup.
|
||||
deny /etc/** mkl,
|
||||
deny /dev/** kl,
|
||||
deny /sys/** mkl,
|
||||
deny /proc/** mkl,
|
||||
|
||||
mount -> @{DOCKER_GRAPH_PATH}/**,
|
||||
mount -> /,
|
||||
mount -> /proc/**,
|
||||
mount -> /sys/**,
|
||||
mount -> /run/docker/netns/**,
|
||||
mount -> /.pivot_root[0-9]*/,
|
||||
|
||||
/ r,
|
||||
|
||||
umount,
|
||||
pivot_root,
|
||||
{{if ge .Version 209000}}
|
||||
signal (receive) peer=@{profile_name},
|
||||
signal (receive) peer=unconfined,
|
||||
signal (send),
|
||||
{{end}}
|
||||
network,
|
||||
capability,
|
||||
owner /** rw,
|
||||
@{DOCKER_GRAPH_PATH}/** rwl,
|
||||
@{DOCKER_GRAPH_PATH}/linkgraph.db k,
|
||||
@{DOCKER_GRAPH_PATH}/network/files/boltdb.db k,
|
||||
@{DOCKER_GRAPH_PATH}/network/files/local-kv.db k,
|
||||
@{DOCKER_GRAPH_PATH}/[0-9]*.[0-9]*/linkgraph.db k,
|
||||
|
||||
# For non-root client use:
|
||||
/dev/urandom r,
|
||||
/dev/null rw,
|
||||
/dev/pts/[0-9]* rw,
|
||||
/run/docker.sock rw,
|
||||
/proc/** r,
|
||||
/proc/[0-9]*/attr/exec w,
|
||||
/sys/kernel/mm/hugepages/ r,
|
||||
/etc/localtime r,
|
||||
/etc/ld.so.cache r,
|
||||
/etc/passwd r,
|
||||
|
||||
{{if ge .Version 209000}}
|
||||
ptrace peer=@{profile_name},
|
||||
ptrace (read) peer=docker-default,
|
||||
deny ptrace (trace) peer=docker-default,
|
||||
deny ptrace peer=/usr/bin/docker///bin/ps,
|
||||
{{end}}
|
||||
|
||||
/usr/lib/** rm,
|
||||
/lib/** rm,
|
||||
|
||||
/usr/bin/docker pix,
|
||||
/sbin/xtables-multi rCx,
|
||||
/sbin/iptables rCx,
|
||||
/sbin/modprobe rCx,
|
||||
/sbin/auplink rCx,
|
||||
/sbin/mke2fs rCx,
|
||||
/sbin/tune2fs rCx,
|
||||
/sbin/blkid rCx,
|
||||
/bin/kmod rCx,
|
||||
/usr/bin/xz rCx,
|
||||
/bin/ps rCx,
|
||||
/bin/tar rCx,
|
||||
/bin/cat rCx,
|
||||
/sbin/zfs rCx,
|
||||
/sbin/apparmor_parser rCx,
|
||||
|
||||
{{if ge .Version 209000}}
|
||||
# Transitions
|
||||
change_profile -> docker-*,
|
||||
change_profile -> unconfined,
|
||||
{{end}}
|
||||
|
||||
profile /bin/cat (complain) {
|
||||
/etc/ld.so.cache r,
|
||||
/lib/** rm,
|
||||
/dev/null rw,
|
||||
/proc r,
|
||||
/bin/cat mr,
|
||||
|
||||
# For reading in 'docker stats':
|
||||
/proc/[0-9]*/net/dev r,
|
||||
}
|
||||
profile /bin/ps (complain) {
|
||||
/etc/ld.so.cache r,
|
||||
/etc/localtime r,
|
||||
/etc/passwd r,
|
||||
/etc/nsswitch.conf r,
|
||||
/lib/** rm,
|
||||
/proc/[0-9]*/** r,
|
||||
/dev/null rw,
|
||||
/bin/ps mr,
|
||||
|
||||
{{if ge .Version 209000}}
|
||||
# We don't need ptrace so we'll deny and ignore the error.
|
||||
deny ptrace (read, trace),
|
||||
{{end}}
|
||||
|
||||
# Quiet dac_override denials
|
||||
deny capability dac_override,
|
||||
deny capability dac_read_search,
|
||||
deny capability sys_ptrace,
|
||||
|
||||
/dev/tty r,
|
||||
/proc/stat r,
|
||||
/proc/cpuinfo r,
|
||||
/proc/meminfo r,
|
||||
/proc/uptime r,
|
||||
/sys/devices/system/cpu/online r,
|
||||
/proc/sys/kernel/pid_max r,
|
||||
/proc/ r,
|
||||
/proc/tty/drivers r,
|
||||
}
|
||||
profile /sbin/iptables (complain) {
|
||||
{{if ge .Version 209000}}
|
||||
signal (receive) peer=/usr/bin/docker,
|
||||
{{end}}
|
||||
capability net_admin,
|
||||
}
|
||||
profile /sbin/auplink flags=(attach_disconnected, complain) {
|
||||
{{if ge .Version 209000}}
|
||||
signal (receive) peer=/usr/bin/docker,
|
||||
{{end}}
|
||||
capability sys_admin,
|
||||
capability dac_override,
|
||||
|
||||
@{DOCKER_GRAPH_PATH}/aufs/** rw,
|
||||
@{DOCKER_GRAPH_PATH}/tmp/** rw,
|
||||
# For user namespaces:
|
||||
@{DOCKER_GRAPH_PATH}/[0-9]*.[0-9]*/** rw,
|
||||
|
||||
/sys/fs/aufs/** r,
|
||||
/lib/** rm,
|
||||
/apparmor/.null r,
|
||||
/dev/null rw,
|
||||
/etc/ld.so.cache r,
|
||||
/sbin/auplink rm,
|
||||
/proc/fs/aufs/** rw,
|
||||
/proc/[0-9]*/mounts rw,
|
||||
}
|
||||
profile /sbin/modprobe /bin/kmod (complain) {
|
||||
{{if ge .Version 209000}}
|
||||
signal (receive) peer=/usr/bin/docker,
|
||||
{{end}}
|
||||
capability sys_module,
|
||||
/etc/ld.so.cache r,
|
||||
/lib/** rm,
|
||||
/dev/null rw,
|
||||
/apparmor/.null rw,
|
||||
/sbin/modprobe rm,
|
||||
/bin/kmod rm,
|
||||
/proc/cmdline r,
|
||||
/sys/module/** r,
|
||||
/etc/modprobe.d{/,/**} r,
|
||||
}
|
||||
# xz works via pipes, so we do not need access to the filesystem.
|
||||
profile /usr/bin/xz (complain) {
|
||||
{{if ge .Version 209000}}
|
||||
signal (receive) peer=/usr/bin/docker,
|
||||
{{end}}
|
||||
/etc/ld.so.cache r,
|
||||
/lib/** rm,
|
||||
/usr/bin/xz rm,
|
||||
deny /proc/** rw,
|
||||
deny /sys/** rw,
|
||||
}
|
||||
profile /sbin/xtables-multi (attach_disconnected, complain) {
|
||||
/etc/ld.so.cache r,
|
||||
/lib/** rm,
|
||||
/sbin/xtables-multi rm,
|
||||
/apparmor/.null w,
|
||||
/dev/null rw,
|
||||
|
||||
/proc r,
|
||||
|
||||
capability net_raw,
|
||||
capability net_admin,
|
||||
network raw,
|
||||
}
|
||||
profile /sbin/zfs (attach_disconnected, complain) {
|
||||
file,
|
||||
capability,
|
||||
}
|
||||
profile /sbin/mke2fs (complain) {
|
||||
/sbin/mke2fs rm,
|
||||
|
||||
/lib/** rm,
|
||||
|
||||
/apparmor/.null w,
|
||||
|
||||
/etc/ld.so.cache r,
|
||||
/etc/mke2fs.conf r,
|
||||
/etc/mtab r,
|
||||
|
||||
/dev/dm-* rw,
|
||||
/dev/urandom r,
|
||||
/dev/null rw,
|
||||
|
||||
/proc/swaps r,
|
||||
/proc/[0-9]*/mounts r,
|
||||
}
|
||||
profile /sbin/tune2fs (complain) {
|
||||
/sbin/tune2fs rm,
|
||||
|
||||
/lib/** rm,
|
||||
|
||||
/apparmor/.null w,
|
||||
|
||||
/etc/blkid.conf r,
|
||||
/etc/mtab r,
|
||||
/etc/ld.so.cache r,
|
||||
|
||||
/dev/null rw,
|
||||
/dev/.blkid.tab r,
|
||||
/dev/dm-* rw,
|
||||
|
||||
/proc/swaps r,
|
||||
/proc/[0-9]*/mounts r,
|
||||
}
|
||||
profile /sbin/blkid (complain) {
|
||||
/sbin/blkid rm,
|
||||
|
||||
/lib/** rm,
|
||||
/apparmor/.null w,
|
||||
|
||||
/etc/ld.so.cache r,
|
||||
/etc/blkid.conf r,
|
||||
|
||||
/dev/null rw,
|
||||
/dev/.blkid.tab rl,
|
||||
/dev/.blkid.tab* rwl,
|
||||
/dev/dm-* r,
|
||||
|
||||
/sys/devices/virtual/block/** r,
|
||||
|
||||
capability mknod,
|
||||
|
||||
mount -> @{DOCKER_GRAPH_PATH}/**,
|
||||
}
|
||||
profile /sbin/apparmor_parser (complain) {
|
||||
/sbin/apparmor_parser rm,
|
||||
|
||||
/lib/** rm,
|
||||
|
||||
/etc/ld.so.cache r,
|
||||
/etc/apparmor/** r,
|
||||
/etc/apparmor.d/** r,
|
||||
/etc/apparmor.d/cache/** w,
|
||||
|
||||
/dev/null rw,
|
||||
|
||||
/sys/kernel/security/apparmor/** r,
|
||||
/sys/kernel/security/apparmor/.replace w,
|
||||
|
||||
/proc/[0-9]*/mounts r,
|
||||
/proc/sys/kernel/osrelease r,
|
||||
/proc r,
|
||||
|
||||
capability mac_admin,
|
||||
}
|
||||
}`
|
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/aarch64/build.sh
generated
vendored
Executable file
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/aarch64/build.sh
generated
vendored
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
set -x
|
||||
./generate.sh
|
||||
for d in */; do
|
||||
docker build -t "dockercore/builder-deb:$(basename "$d")" "$d"
|
||||
done
|
17
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/aarch64/debian-jessie/Dockerfile
generated
vendored
Normal file
17
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/aarch64/debian-jessie/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/aarch64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM aarch64/debian:jessie
|
||||
|
||||
RUN echo deb http://ftp.debian.org/debian jessie-backports main > /etc/apt/sources.list.d/backports.list
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common libsystemd-journal-dev libseccomp-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-arm64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
|
||||
ENV RUNC_BUILDTAGS apparmor seccomp selinux
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/aarch64/debian-stretch/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/aarch64/debian-stretch/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/aarch64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM aarch64/debian:stretch
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common libsystemd-dev libseccomp-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-arm64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
|
||||
ENV RUNC_BUILDTAGS apparmor seccomp selinux
|
112
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/aarch64/generate.sh
generated
vendored
Executable file
112
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/aarch64/generate.sh
generated
vendored
Executable file
|
@ -0,0 +1,112 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# This file is used to auto-generate Dockerfiles for making debs via 'make deb'
|
||||
#
|
||||
# usage: ./generate.sh [versions]
|
||||
# ie: ./generate.sh
|
||||
# to update all Dockerfiles in this directory
|
||||
# or: ./generate.sh ubuntu-trusty
|
||||
# to only update ubuntu-trusty/Dockerfile
|
||||
# or: ./generate.sh ubuntu-newversion
|
||||
# to create a new folder and a Dockerfile within it
|
||||
#
|
||||
# Note: non-LTS versions are not guaranteed to work.
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
versions=( "$@" )
|
||||
if [ ${#versions[@]} -eq 0 ]; then
|
||||
versions=( */ )
|
||||
fi
|
||||
versions=( "${versions[@]%/}" )
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
echo "${versions[@]}"
|
||||
distro="${version%-*}"
|
||||
suite="${version##*-}"
|
||||
from="aarch64/${distro}:${suite}"
|
||||
|
||||
mkdir -p "$version"
|
||||
echo "$version -> FROM $from"
|
||||
cat > "$version/Dockerfile" <<-EOF
|
||||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/aarch64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM $from
|
||||
|
||||
EOF
|
||||
|
||||
extraBuildTags='apparmor selinux'
|
||||
runcBuildTags='apparmor selinux'
|
||||
|
||||
# this list is sorted alphabetically; please keep it that way
|
||||
packages=(
|
||||
apparmor # for apparmor_parser for testing the profile
|
||||
bash-completion # for bash-completion debhelper integration
|
||||
btrfs-tools # for "btrfs/ioctl.h" (and "version.h" if possible)
|
||||
build-essential # "essential for building Debian packages"
|
||||
cmake # tini dep
|
||||
curl ca-certificates # for downloading Go
|
||||
debhelper # for easy ".deb" building
|
||||
dh-apparmor # for apparmor debhelper
|
||||
dh-systemd # for systemd debhelper integration
|
||||
git # for "git commit" info in "docker -v"
|
||||
libapparmor-dev # for "sys/apparmor.h"
|
||||
libdevmapper-dev # for "libdevmapper.h"
|
||||
pkg-config # for detecting things like libsystemd-journal dynamically
|
||||
vim-common # tini dep
|
||||
)
|
||||
|
||||
case "$suite" in
|
||||
trusty)
|
||||
packages+=( libsystemd-journal-dev )
|
||||
;;
|
||||
jessie)
|
||||
packages+=( libsystemd-journal-dev )
|
||||
packages+=( libseccomp-dev )
|
||||
|
||||
extraBuildTags+=' seccomp'
|
||||
runcBuildTags+=' seccomp'
|
||||
;;
|
||||
stretch|xenial)
|
||||
packages+=( libsystemd-dev )
|
||||
packages+=( libseccomp-dev )
|
||||
|
||||
extraBuildTags+=' seccomp'
|
||||
runcBuildTags+=' seccomp'
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported distro:" $distro:$suite
|
||||
rm -fr "$version"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$suite" in
|
||||
jessie)
|
||||
echo 'RUN echo deb http://ftp.debian.org/debian jessie-backports main > /etc/apt/sources.list.d/backports.list' >> "$version/Dockerfile"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
# update and install packages
|
||||
echo "RUN apt-get update && apt-get install -y ${packages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../../Dockerfile.aarch64 >> "$version/Dockerfile"
|
||||
echo 'RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-arm64.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
|
||||
echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
# print build tags in alphabetical order
|
||||
buildTags=$( echo "$extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
|
||||
runcBuildTags=$( echo "$runcBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
|
||||
echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
|
||||
echo "ENV RUNC_BUILDTAGS $runcBuildTags" >> "$version/Dockerfile"
|
||||
done
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/aarch64/ubuntu-trusty/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/aarch64/ubuntu-trusty/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/aarch64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM aarch64/ubuntu:trusty
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-arm64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor selinux
|
||||
ENV RUNC_BUILDTAGS apparmor selinux
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/aarch64/ubuntu-xenial/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/aarch64/ubuntu-xenial/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/aarch64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM aarch64/ubuntu:xenial
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common libsystemd-dev libseccomp-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-arm64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
|
||||
ENV RUNC_BUILDTAGS apparmor seccomp selinux
|
5
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/README.md
generated
vendored
Normal file
5
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/README.md
generated
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
# `dockercore/builder-deb`
|
||||
|
||||
This image's tags contain the dependencies for building Docker `.deb`s for each of the Debian-based platforms Docker targets.
|
||||
|
||||
To add new tags, see [`contrib/builder/deb/amd64` in https://github.com/docker/docker](https://github.com/docker/docker/tree/master/contrib/builder/deb/amd64), specifically the `generate.sh` script, whose usage is described in a comment at the top of the file.
|
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/build.sh
generated
vendored
Executable file
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/build.sh
generated
vendored
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
set -x
|
||||
./generate.sh
|
||||
for d in */; do
|
||||
docker build -t "dockercore/builder-deb:$(basename "$d")" "$d"
|
||||
done
|
20
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/debian-jessie/Dockerfile
generated
vendored
Normal file
20
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/debian-jessie/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM debian:jessie
|
||||
|
||||
# allow replacing httpredir or deb mirror
|
||||
ARG APT_MIRROR=deb.debian.org
|
||||
RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor selinux
|
||||
ENV RUNC_BUILDTAGS apparmor selinux
|
20
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/debian-stretch/Dockerfile
generated
vendored
Normal file
20
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/debian-stretch/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM debian:stretch
|
||||
|
||||
# allow replacing httpredir or deb mirror
|
||||
ARG APT_MIRROR=deb.debian.org
|
||||
RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libseccomp-dev pkg-config vim-common libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
|
||||
ENV RUNC_BUILDTAGS apparmor seccomp selinux
|
22
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/debian-wheezy/Dockerfile
generated
vendored
Normal file
22
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/debian-wheezy/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM debian:wheezy-backports
|
||||
|
||||
# allow replacing httpredir or deb mirror
|
||||
ARG APT_MIRROR=deb.debian.org
|
||||
RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list
|
||||
RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list.d/backports.list
|
||||
|
||||
RUN apt-get update && apt-get install -y -t wheezy-backports btrfs-tools --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor selinux
|
||||
ENV RUNC_BUILDTAGS apparmor selinux
|
130
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/generate.sh
generated
vendored
Executable file
130
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/generate.sh
generated
vendored
Executable file
|
@ -0,0 +1,130 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# usage: ./generate.sh [versions]
|
||||
# ie: ./generate.sh
|
||||
# to update all Dockerfiles in this directory
|
||||
# or: ./generate.sh debian-jessie
|
||||
# to only update debian-jessie/Dockerfile
|
||||
# or: ./generate.sh debian-newversion
|
||||
# to create a new folder and a Dockerfile within it
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
versions=( "$@" )
|
||||
if [ ${#versions[@]} -eq 0 ]; then
|
||||
versions=( */ )
|
||||
fi
|
||||
versions=( "${versions[@]%/}" )
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
distro="${version%-*}"
|
||||
suite="${version##*-}"
|
||||
from="${distro}:${suite}"
|
||||
|
||||
case "$from" in
|
||||
debian:wheezy)
|
||||
# add -backports, like our users have to
|
||||
from+='-backports'
|
||||
;;
|
||||
esac
|
||||
|
||||
mkdir -p "$version"
|
||||
echo "$version -> FROM $from"
|
||||
cat > "$version/Dockerfile" <<-EOF
|
||||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM $from
|
||||
EOF
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
if [ "$distro" = "debian" ]; then
|
||||
cat >> "$version/Dockerfile" <<-'EOF'
|
||||
# allow replacing httpredir or deb mirror
|
||||
ARG APT_MIRROR=deb.debian.org
|
||||
RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list
|
||||
EOF
|
||||
|
||||
if [ "$suite" = "wheezy" ]; then
|
||||
cat >> "$version/Dockerfile" <<-'EOF'
|
||||
RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list.d/backports.list
|
||||
EOF
|
||||
fi
|
||||
|
||||
echo "" >> "$version/Dockerfile"
|
||||
fi
|
||||
|
||||
extraBuildTags=
|
||||
runcBuildTags=
|
||||
|
||||
# this list is sorted alphabetically; please keep it that way
|
||||
packages=(
|
||||
apparmor # for apparmor_parser for testing the profile
|
||||
bash-completion # for bash-completion debhelper integration
|
||||
btrfs-tools # for "btrfs/ioctl.h" (and "version.h" if possible)
|
||||
build-essential # "essential for building Debian packages"
|
||||
cmake # tini dep
|
||||
curl ca-certificates # for downloading Go
|
||||
debhelper # for easy ".deb" building
|
||||
dh-apparmor # for apparmor debhelper
|
||||
dh-systemd # for systemd debhelper integration
|
||||
git # for "git commit" info in "docker -v"
|
||||
libapparmor-dev # for "sys/apparmor.h"
|
||||
libdevmapper-dev # for "libdevmapper.h"
|
||||
libseccomp-dev # for "seccomp.h" & "libseccomp.so"
|
||||
pkg-config # for detecting things like libsystemd-journal dynamically
|
||||
vim-common # tini dep
|
||||
)
|
||||
# packaging for "sd-journal.h" and libraries varies
|
||||
case "$suite" in
|
||||
wheezy) ;;
|
||||
jessie|trusty) packages+=( libsystemd-journal-dev ) ;;
|
||||
*) packages+=( libsystemd-dev ) ;;
|
||||
esac
|
||||
|
||||
# debian wheezy does not have the right libseccomp libs
|
||||
# debian jessie & ubuntu trusty have a libseccomp < 2.2.1 :(
|
||||
case "$suite" in
|
||||
wheezy|jessie|trusty)
|
||||
packages=( "${packages[@]/libseccomp-dev}" )
|
||||
runcBuildTags="apparmor selinux"
|
||||
;;
|
||||
*)
|
||||
extraBuildTags+=' seccomp'
|
||||
runcBuildTags="apparmor seccomp selinux"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$suite" = 'wheezy' ]; then
|
||||
# pull a couple packages from backports explicitly
|
||||
# (build failures otherwise)
|
||||
backportsPackages=( btrfs-tools )
|
||||
for pkg in "${backportsPackages[@]}"; do
|
||||
packages=( "${packages[@]/$pkg}" )
|
||||
done
|
||||
echo "RUN apt-get update && apt-get install -y -t $suite-backports ${backportsPackages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"
|
||||
fi
|
||||
|
||||
echo "RUN apt-get update && apt-get install -y ${packages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../../Dockerfile >> "$version/Dockerfile"
|
||||
echo 'RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
|
||||
echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
# print build tags in alphabetical order
|
||||
buildTags=$( echo "apparmor selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
|
||||
|
||||
echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
|
||||
echo "ENV RUNC_BUILDTAGS $runcBuildTags" >> "$version/Dockerfile"
|
||||
done
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/ubuntu-trusty/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/ubuntu-trusty/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM ubuntu:trusty
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor selinux
|
||||
ENV RUNC_BUILDTAGS apparmor selinux
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/ubuntu-xenial/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/ubuntu-xenial/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM ubuntu:xenial
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libseccomp-dev pkg-config vim-common libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
|
||||
ENV RUNC_BUILDTAGS apparmor seccomp selinux
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/ubuntu-yakkety/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/ubuntu-yakkety/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM ubuntu:yakkety
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libseccomp-dev pkg-config vim-common libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
|
||||
ENV RUNC_BUILDTAGS apparmor seccomp selinux
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/ubuntu-zesty/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/amd64/ubuntu-zesty/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM ubuntu:zesty
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libseccomp-dev pkg-config vim-common libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
|
||||
ENV RUNC_BUILDTAGS apparmor seccomp selinux
|
20
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/armhf/debian-jessie/Dockerfile
generated
vendored
Normal file
20
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/armhf/debian-jessie/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/armhf/generate.sh"!
|
||||
#
|
||||
|
||||
FROM armhf/debian:jessie
|
||||
|
||||
# allow replacing httpredir or deb mirror
|
||||
ARG APT_MIRROR=deb.debian.org
|
||||
RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-armv6l.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor selinux
|
||||
ENV RUNC_BUILDTAGS apparmor selinux
|
139
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/armhf/generate.sh
generated
vendored
Executable file
139
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/armhf/generate.sh
generated
vendored
Executable file
|
@ -0,0 +1,139 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# usage: ./generate.sh [versions]
|
||||
# ie: ./generate.sh
|
||||
# to update all Dockerfiles in this directory
|
||||
# or: ./generate.sh debian-jessie
|
||||
# to only update debian-jessie/Dockerfile
|
||||
# or: ./generate.sh debian-newversion
|
||||
# to create a new folder and a Dockerfile within it
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
versions=( "$@" )
|
||||
if [ ${#versions[@]} -eq 0 ]; then
|
||||
versions=( */ )
|
||||
fi
|
||||
versions=( "${versions[@]%/}" )
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
distro="${version%-*}"
|
||||
suite="${version##*-}"
|
||||
from="${distro}:${suite}"
|
||||
|
||||
case "$from" in
|
||||
raspbian:jessie)
|
||||
from="resin/rpi-raspbian:jessie"
|
||||
;;
|
||||
*)
|
||||
from="armhf/$from"
|
||||
;;
|
||||
esac
|
||||
|
||||
mkdir -p "$version"
|
||||
echo "$version -> FROM $from"
|
||||
cat > "$version/Dockerfile" <<-EOF
|
||||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/armhf/generate.sh"!
|
||||
#
|
||||
|
||||
FROM $from
|
||||
EOF
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
if [[ "$distro" = "debian" || "$distro" = "raspbian" ]]; then
|
||||
cat >> "$version/Dockerfile" <<-'EOF'
|
||||
# allow replacing httpredir or deb mirror
|
||||
ARG APT_MIRROR=deb.debian.org
|
||||
RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list
|
||||
EOF
|
||||
|
||||
if [ "$suite" = "wheezy" ]; then
|
||||
cat >> "$version/Dockerfile" <<-'EOF'
|
||||
RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list.d/backports.list
|
||||
EOF
|
||||
fi
|
||||
|
||||
echo "" >> "$version/Dockerfile"
|
||||
fi
|
||||
|
||||
extraBuildTags=
|
||||
runcBuildTags=
|
||||
|
||||
# this list is sorted alphabetically; please keep it that way
|
||||
packages=(
|
||||
apparmor # for apparmor_parser for testing the profile
|
||||
bash-completion # for bash-completion debhelper integration
|
||||
btrfs-tools # for "btrfs/ioctl.h" (and "version.h" if possible)
|
||||
build-essential # "essential for building Debian packages"
|
||||
cmake # tini dep
|
||||
curl ca-certificates # for downloading Go
|
||||
debhelper # for easy ".deb" building
|
||||
dh-apparmor # for apparmor debhelper
|
||||
dh-systemd # for systemd debhelper integration
|
||||
git # for "git commit" info in "docker -v"
|
||||
libapparmor-dev # for "sys/apparmor.h"
|
||||
libdevmapper-dev # for "libdevmapper.h"
|
||||
libseccomp-dev # for "seccomp.h" & "libseccomp.so"
|
||||
pkg-config # for detecting things like libsystemd-journal dynamically
|
||||
vim-common # tini dep
|
||||
)
|
||||
# packaging for "sd-journal.h" and libraries varies
|
||||
case "$suite" in
|
||||
wheezy) ;;
|
||||
jessie|trusty) packages+=( libsystemd-journal-dev ) ;;
|
||||
*) packages+=( libsystemd-dev ) ;;
|
||||
esac
|
||||
|
||||
# debian wheezy does not have the right libseccomp libs
|
||||
# debian jessie & ubuntu trusty have a libseccomp < 2.2.1 :(
|
||||
case "$suite" in
|
||||
wheezy|jessie|trusty)
|
||||
packages=( "${packages[@]/libseccomp-dev}" )
|
||||
runcBuildTags="apparmor selinux"
|
||||
;;
|
||||
*)
|
||||
extraBuildTags+=' seccomp'
|
||||
runcBuildTags="apparmor seccomp selinux"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$suite" = 'wheezy' ]; then
|
||||
# pull a couple packages from backports explicitly
|
||||
# (build failures otherwise)
|
||||
backportsPackages=( btrfs-tools )
|
||||
for pkg in "${backportsPackages[@]}"; do
|
||||
packages=( "${packages[@]/$pkg}" )
|
||||
done
|
||||
echo "RUN apt-get update && apt-get install -y -t $suite-backports ${backportsPackages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"
|
||||
fi
|
||||
|
||||
echo "RUN apt-get update && apt-get install -y ${packages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../../Dockerfile.armhf >> "$version/Dockerfile"
|
||||
if [ "$distro" == 'raspbian' ];
|
||||
then
|
||||
cat <<EOF >> "$version/Dockerfile"
|
||||
# GOARM is the ARM architecture version which is unrelated to the above Golang version
|
||||
ENV GOARM 6
|
||||
EOF
|
||||
fi
|
||||
echo 'RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-armv6l.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
|
||||
echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
# print build tags in alphabetical order
|
||||
buildTags=$( echo "apparmor selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
|
||||
|
||||
echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
|
||||
echo "ENV RUNC_BUILDTAGS $runcBuildTags" >> "$version/Dockerfile"
|
||||
done
|
22
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/armhf/raspbian-jessie/Dockerfile
generated
vendored
Normal file
22
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/armhf/raspbian-jessie/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/armhf/generate.sh"!
|
||||
#
|
||||
|
||||
FROM resin/rpi-raspbian:jessie
|
||||
|
||||
# allow replacing httpredir or deb mirror
|
||||
ARG APT_MIRROR=deb.debian.org
|
||||
RUN sed -ri "s/(httpredir|deb).debian.org/$APT_MIRROR/g" /etc/apt/sources.list
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
# GOARM is the ARM architecture version which is unrelated to the above Golang version
|
||||
ENV GOARM 6
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-armv6l.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor selinux
|
||||
ENV RUNC_BUILDTAGS apparmor selinux
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/armhf/ubuntu-trusty/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/armhf/ubuntu-trusty/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/armhf/generate.sh"!
|
||||
#
|
||||
|
||||
FROM armhf/ubuntu:trusty
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-armv6l.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor selinux
|
||||
ENV RUNC_BUILDTAGS apparmor selinux
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/armhf/ubuntu-xenial/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/armhf/ubuntu-xenial/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/armhf/generate.sh"!
|
||||
#
|
||||
|
||||
FROM armhf/ubuntu:xenial
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libseccomp-dev pkg-config vim-common libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-armv6l.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
|
||||
ENV RUNC_BUILDTAGS apparmor seccomp selinux
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/armhf/ubuntu-yakkety/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/armhf/ubuntu-yakkety/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/armhf/generate.sh"!
|
||||
#
|
||||
|
||||
FROM armhf/ubuntu:yakkety
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libseccomp-dev pkg-config vim-common libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-armv6l.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
|
||||
ENV RUNC_BUILDTAGS apparmor seccomp selinux
|
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/ppc64le/build.sh
generated
vendored
Executable file
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/ppc64le/build.sh
generated
vendored
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
set -x
|
||||
./generate.sh
|
||||
for d in */; do
|
||||
docker build -t "dockercore/builder-deb:$(basename "$d")" "$d"
|
||||
done
|
101
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/ppc64le/generate.sh
generated
vendored
Executable file
101
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/ppc64le/generate.sh
generated
vendored
Executable file
|
@ -0,0 +1,101 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# This file is used to auto-generate Dockerfiles for making debs via 'make deb'
|
||||
#
|
||||
# usage: ./generate.sh [versions]
|
||||
# ie: ./generate.sh
|
||||
# to update all Dockerfiles in this directory
|
||||
# or: ./generate.sh ubuntu-xenial
|
||||
# to only update ubuntu-xenial/Dockerfile
|
||||
# or: ./generate.sh ubuntu-newversion
|
||||
# to create a new folder and a Dockerfile within it
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
versions=( "$@" )
|
||||
if [ ${#versions[@]} -eq 0 ]; then
|
||||
versions=( */ )
|
||||
fi
|
||||
versions=( "${versions[@]%/}" )
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
echo "${versions[@]}"
|
||||
distro="${version%-*}"
|
||||
suite="${version##*-}"
|
||||
from="ppc64le/${distro}:${suite}"
|
||||
|
||||
mkdir -p "$version"
|
||||
echo "$version -> FROM $from"
|
||||
cat > "$version/Dockerfile" <<-EOF
|
||||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/ppc64le/generate.sh"!
|
||||
#
|
||||
|
||||
FROM $from
|
||||
|
||||
EOF
|
||||
|
||||
extraBuildTags=
|
||||
runcBuildTags=
|
||||
|
||||
# this list is sorted alphabetically; please keep it that way
|
||||
packages=(
|
||||
apparmor # for apparmor_parser for testing the profile
|
||||
bash-completion # for bash-completion debhelper integration
|
||||
btrfs-tools # for "btrfs/ioctl.h" (and "version.h" if possible)
|
||||
build-essential # "essential for building Debian packages"
|
||||
cmake # tini dep
|
||||
curl ca-certificates # for downloading Go
|
||||
debhelper # for easy ".deb" building
|
||||
dh-apparmor # for apparmor debhelper
|
||||
dh-systemd # for systemd debhelper integration
|
||||
git # for "git commit" info in "docker -v"
|
||||
libapparmor-dev # for "sys/apparmor.h"
|
||||
libdevmapper-dev # for "libdevmapper.h"
|
||||
pkg-config # for detecting things like libsystemd-journal dynamically
|
||||
vim-common # tini dep
|
||||
)
|
||||
|
||||
case "$suite" in
|
||||
trusty)
|
||||
packages+=( libsystemd-journal-dev )
|
||||
;;
|
||||
*)
|
||||
# libseccomp isn't available until ubuntu xenial and is required for "seccomp.h" & "libseccomp.so"
|
||||
packages+=( libseccomp-dev )
|
||||
packages+=( libsystemd-dev )
|
||||
;;
|
||||
esac
|
||||
|
||||
# buildtags
|
||||
case "$suite" in
|
||||
# trusty has no seccomp package
|
||||
trusty)
|
||||
runcBuildTags="apparmor selinux"
|
||||
;;
|
||||
# ppc64le support was backported into libseccomp 2.2.3-2,
|
||||
# so enable seccomp by default
|
||||
*)
|
||||
extraBuildTags+=' seccomp'
|
||||
runcBuildTags="apparmor seccomp selinux"
|
||||
;;
|
||||
esac
|
||||
|
||||
# update and install packages
|
||||
echo "RUN apt-get update && apt-get install -y ${packages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../../Dockerfile.ppc64le >> "$version/Dockerfile"
|
||||
echo 'RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-ppc64le.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
|
||||
echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
# print build tags in alphabetical order
|
||||
buildTags=$( echo "apparmor selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
|
||||
echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
|
||||
echo "ENV RUNC_BUILDTAGS $runcBuildTags" >> "$version/Dockerfile"
|
||||
done
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/ppc64le/ubuntu-trusty/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/ppc64le/ubuntu-trusty/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/ppc64le/generate.sh"!
|
||||
#
|
||||
|
||||
FROM ppc64le/ubuntu:trusty
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common libsystemd-journal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-ppc64le.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor selinux
|
||||
ENV RUNC_BUILDTAGS apparmor selinux
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/ppc64le/ubuntu-xenial/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/ppc64le/ubuntu-xenial/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/ppc64le/generate.sh"!
|
||||
#
|
||||
|
||||
FROM ppc64le/ubuntu:xenial
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common libseccomp-dev libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-ppc64le.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
|
||||
ENV RUNC_BUILDTAGS apparmor seccomp selinux
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/ppc64le/ubuntu-yakkety/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/ppc64le/ubuntu-yakkety/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/ppc64le/generate.sh"!
|
||||
#
|
||||
|
||||
FROM ppc64le/ubuntu:yakkety
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev pkg-config vim-common libseccomp-dev libsystemd-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-ppc64le.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
|
||||
ENV RUNC_BUILDTAGS apparmor seccomp selinux
|
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/s390x/build.sh
generated
vendored
Executable file
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/s390x/build.sh
generated
vendored
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
set -x
|
||||
./generate.sh
|
||||
for d in */; do
|
||||
docker build -t "dockercore/builder-deb:$(basename "$d")" "$d"
|
||||
done
|
94
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/s390x/generate.sh
generated
vendored
Executable file
94
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/s390x/generate.sh
generated
vendored
Executable file
|
@ -0,0 +1,94 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# This file is used to auto-generate Dockerfiles for making debs via 'make deb'
|
||||
#
|
||||
# usage: ./generate.sh [versions]
|
||||
# ie: ./generate.sh
|
||||
# to update all Dockerfiles in this directory
|
||||
# or: ./generate.sh ubuntu-xenial
|
||||
# to only update ubuntu-xenial/Dockerfile
|
||||
# or: ./generate.sh ubuntu-newversion
|
||||
# to create a new folder and a Dockerfile within it
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
versions=( "$@" )
|
||||
if [ ${#versions[@]} -eq 0 ]; then
|
||||
versions=( */ )
|
||||
fi
|
||||
versions=( "${versions[@]%/}" )
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
echo "${versions[@]}"
|
||||
distro="${version%-*}"
|
||||
suite="${version##*-}"
|
||||
from="s390x/${distro}:${suite}"
|
||||
|
||||
mkdir -p "$version"
|
||||
echo "$version -> FROM $from"
|
||||
cat > "$version/Dockerfile" <<-EOF
|
||||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/s390x/generate.sh"!
|
||||
#
|
||||
|
||||
FROM $from
|
||||
|
||||
EOF
|
||||
|
||||
extraBuildTags=
|
||||
runcBuildTags=
|
||||
|
||||
# this list is sorted alphabetically; please keep it that way
|
||||
packages=(
|
||||
apparmor # for apparmor_parser for testing the profile
|
||||
bash-completion # for bash-completion debhelper integration
|
||||
btrfs-tools # for "btrfs/ioctl.h" (and "version.h" if possible)
|
||||
build-essential # "essential for building Debian packages"
|
||||
cmake # tini dep
|
||||
curl ca-certificates # for downloading Go
|
||||
debhelper # for easy ".deb" building
|
||||
dh-apparmor # for apparmor debhelper
|
||||
dh-systemd # for systemd debhelper integration
|
||||
git # for "git commit" info in "docker -v"
|
||||
libapparmor-dev # for "sys/apparmor.h"
|
||||
libdevmapper-dev # for "libdevmapper.h"
|
||||
libseccomp-dev # for "seccomp.h" & "libseccomp.so"
|
||||
pkg-config # for detecting things like libsystemd-journal dynamically
|
||||
libsystemd-dev
|
||||
vim-common # tini dep
|
||||
)
|
||||
|
||||
case "$suite" in
|
||||
# s390x needs libseccomp 2.3.1
|
||||
xenial)
|
||||
# Ubuntu Xenial has libseccomp 2.2.3
|
||||
runcBuildTags="apparmor selinux"
|
||||
;;
|
||||
*)
|
||||
extraBuildTags+=' seccomp'
|
||||
runcBuildTags="apparmor selinux seccomp"
|
||||
;;
|
||||
esac
|
||||
|
||||
# update and install packages
|
||||
echo "RUN apt-get update && apt-get install -y ${packages[*]} --no-install-recommends && rm -rf /var/lib/apt/lists/*" >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../../Dockerfile.s390x >> "$version/Dockerfile"
|
||||
echo 'RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-s390x.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
|
||||
echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
# print build tags in alphabetical order
|
||||
buildTags=$( echo "apparmor selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
|
||||
|
||||
echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
|
||||
echo "ENV RUNC_BUILDTAGS $runcBuildTags" >> "$version/Dockerfile"
|
||||
done
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/s390x/ubuntu-xenial/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/s390x/ubuntu-xenial/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/s390x/generate.sh"!
|
||||
#
|
||||
|
||||
FROM s390x/ubuntu:xenial
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libseccomp-dev pkg-config libsystemd-dev vim-common --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-s390x.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor selinux
|
||||
ENV RUNC_BUILDTAGS apparmor selinux
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/s390x/ubuntu-yakkety/Dockerfile
generated
vendored
Normal file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/deb/s390x/ubuntu-yakkety/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/deb/s390x/generate.sh"!
|
||||
#
|
||||
|
||||
FROM s390x/ubuntu:yakkety
|
||||
|
||||
RUN apt-get update && apt-get install -y apparmor bash-completion btrfs-tools build-essential cmake curl ca-certificates debhelper dh-apparmor dh-systemd git libapparmor-dev libdevmapper-dev libseccomp-dev pkg-config libsystemd-dev vim-common --no-install-recommends && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-s390x.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS apparmor seccomp selinux
|
||||
ENV RUNC_BUILDTAGS apparmor selinux seccomp
|
5
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/README.md
generated
vendored
Normal file
5
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/README.md
generated
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
# `dockercore/builder-rpm`
|
||||
|
||||
This image's tags contain the dependencies for building Docker `.rpm`s for each of the RPM-based platforms Docker targets.
|
||||
|
||||
To add new tags, see [`contrib/builder/rpm/amd64` in https://github.com/docker/docker](https://github.com/docker/docker/tree/master/contrib/builder/rpm/amd64), specifically the `generate.sh` script, whose usage is described in a comment at the top of the file.
|
18
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/amazonlinux-latest/Dockerfile
generated
vendored
Normal file
18
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/amazonlinux-latest/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM amazonlinux:latest
|
||||
|
||||
RUN yum groupinstall -y "Development Tools"
|
||||
RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel pkgconfig selinux-policy selinux-policy-devel tar git cmake vim-common
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS seccomp selinux
|
||||
ENV RUNC_BUILDTAGS seccomp selinux
|
||||
|
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/build.sh
generated
vendored
Executable file
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/build.sh
generated
vendored
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
set -x
|
||||
./generate.sh
|
||||
for d in */; do
|
||||
docker build -t "dockercore/builder-rpm:$(basename "$d")" "$d"
|
||||
done
|
19
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/centos-7/Dockerfile
generated
vendored
Normal file
19
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/centos-7/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM centos:7
|
||||
|
||||
RUN yum groupinstall -y "Development Tools"
|
||||
RUN yum -y swap -- remove systemd-container systemd-container-libs -- install systemd systemd-libs
|
||||
RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel pkgconfig selinux-policy selinux-policy-devel systemd-devel tar git cmake vim-common
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS seccomp selinux
|
||||
ENV RUNC_BUILDTAGS seccomp selinux
|
||||
|
19
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/fedora-24/Dockerfile
generated
vendored
Normal file
19
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/fedora-24/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM fedora:24
|
||||
|
||||
RUN dnf -y upgrade
|
||||
RUN dnf install -y @development-tools fedora-packager
|
||||
RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel pkgconfig selinux-policy selinux-policy-devel systemd-devel tar git cmake vim-common
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS seccomp selinux
|
||||
ENV RUNC_BUILDTAGS seccomp selinux
|
||||
|
19
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/fedora-25/Dockerfile
generated
vendored
Normal file
19
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/fedora-25/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM fedora:25
|
||||
|
||||
RUN dnf -y upgrade
|
||||
RUN dnf install -y @development-tools fedora-packager
|
||||
RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel pkgconfig selinux-policy selinux-policy-devel systemd-devel tar git cmake vim-common
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS seccomp selinux
|
||||
ENV RUNC_BUILDTAGS seccomp selinux
|
||||
|
187
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/generate.sh
generated
vendored
Executable file
187
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/generate.sh
generated
vendored
Executable file
|
@ -0,0 +1,187 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# usage: ./generate.sh [versions]
|
||||
# ie: ./generate.sh
|
||||
# to update all Dockerfiles in this directory
|
||||
# or: ./generate.sh centos-7
|
||||
# to only update centos-7/Dockerfile
|
||||
# or: ./generate.sh fedora-newversion
|
||||
# to create a new folder and a Dockerfile within it
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
versions=( "$@" )
|
||||
if [ ${#versions[@]} -eq 0 ]; then
|
||||
versions=( */ )
|
||||
fi
|
||||
versions=( "${versions[@]%/}" )
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
distro="${version%-*}"
|
||||
suite="${version##*-}"
|
||||
from="${distro}:${suite}"
|
||||
installer=yum
|
||||
|
||||
if [[ "$distro" == "fedora" ]]; then
|
||||
installer=dnf
|
||||
fi
|
||||
if [[ "$distro" == "photon" ]]; then
|
||||
installer=tdnf
|
||||
fi
|
||||
|
||||
mkdir -p "$version"
|
||||
echo "$version -> FROM $from"
|
||||
cat > "$version/Dockerfile" <<-EOF
|
||||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM $from
|
||||
EOF
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
extraBuildTags=
|
||||
runcBuildTags=
|
||||
|
||||
case "$from" in
|
||||
oraclelinux:6)
|
||||
# We need a known version of the kernel-uek-devel headers to set CGO_CPPFLAGS, so grab the UEKR4 GA version
|
||||
# This requires using yum-config-manager from yum-utils to enable the UEKR4 yum repo
|
||||
echo "RUN yum install -y yum-utils && curl -o /etc/yum.repos.d/public-yum-ol6.repo http://yum.oracle.com/public-yum-ol6.repo && yum-config-manager -q --enable ol6_UEKR4" >> "$version/Dockerfile"
|
||||
echo "RUN yum install -y kernel-uek-devel-4.1.12-32.el6uek" >> "$version/Dockerfile"
|
||||
echo >> "$version/Dockerfile"
|
||||
;;
|
||||
fedora:*)
|
||||
echo "RUN ${installer} -y upgrade" >> "$version/Dockerfile"
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
case "$from" in
|
||||
centos:*|amazonlinux:latest)
|
||||
# get "Development Tools" packages dependencies
|
||||
echo 'RUN yum groupinstall -y "Development Tools"' >> "$version/Dockerfile"
|
||||
|
||||
if [[ "$version" == "centos-7" ]]; then
|
||||
echo 'RUN yum -y swap -- remove systemd-container systemd-container-libs -- install systemd systemd-libs' >> "$version/Dockerfile"
|
||||
fi
|
||||
;;
|
||||
oraclelinux:*)
|
||||
# get "Development Tools" packages and dependencies
|
||||
# we also need yum-utils for yum-config-manager to pull the latest repo file
|
||||
echo 'RUN yum groupinstall -y "Development Tools"' >> "$version/Dockerfile"
|
||||
;;
|
||||
opensuse:*)
|
||||
# get rpm-build and curl packages and dependencies
|
||||
echo 'RUN zypper --non-interactive install ca-certificates* curl gzip rpm-build' >> "$version/Dockerfile"
|
||||
;;
|
||||
photon:*)
|
||||
echo "RUN ${installer} install -y wget curl ca-certificates gzip make rpm-build sed gcc linux-api-headers glibc-devel binutils libseccomp elfutils" >> "$version/Dockerfile"
|
||||
;;
|
||||
*)
|
||||
echo "RUN ${installer} install -y @development-tools fedora-packager" >> "$version/Dockerfile"
|
||||
;;
|
||||
esac
|
||||
|
||||
packages=(
|
||||
btrfs-progs-devel # for "btrfs/ioctl.h" (and "version.h" if possible)
|
||||
device-mapper-devel # for "libdevmapper.h"
|
||||
glibc-static
|
||||
libseccomp-devel # for "seccomp.h" & "libseccomp.so"
|
||||
libselinux-devel # for "libselinux.so"
|
||||
pkgconfig # for the pkg-config command
|
||||
selinux-policy
|
||||
selinux-policy-devel
|
||||
systemd-devel # for "sd-journal.h" and libraries
|
||||
tar # older versions of dev-tools do not have tar
|
||||
git # required for containerd and runc clone
|
||||
cmake # tini build
|
||||
vim-common # tini build
|
||||
)
|
||||
|
||||
case "$from" in
|
||||
oraclelinux:7)
|
||||
# Enable the optional repository
|
||||
packages=( --enablerepo=ol7_optional_latest "${packages[*]}" )
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$from" in
|
||||
oraclelinux:6|amazonlinux:latest)
|
||||
# doesn't use systemd, doesn't have a devel package for it
|
||||
packages=( "${packages[@]/systemd-devel}" )
|
||||
;;
|
||||
esac
|
||||
|
||||
# opensuse & oraclelinx:6 do not have the right libseccomp libs
|
||||
case "$from" in
|
||||
opensuse:*|oraclelinux:6)
|
||||
packages=( "${packages[@]/libseccomp-devel}" )
|
||||
runcBuildTags="selinux"
|
||||
;;
|
||||
*)
|
||||
extraBuildTags+=' seccomp'
|
||||
runcBuildTags="seccomp selinux"
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$from" in
|
||||
opensuse:*)
|
||||
packages=( "${packages[@]/btrfs-progs-devel/libbtrfs-devel}" )
|
||||
packages=( "${packages[@]/pkgconfig/pkg-config}" )
|
||||
packages=( "${packages[@]/vim-common/vim}" )
|
||||
if [[ "$from" == "opensuse:13."* ]]; then
|
||||
packages+=( systemd-rpm-macros )
|
||||
fi
|
||||
|
||||
# use zypper
|
||||
echo "RUN zypper --non-interactive install ${packages[*]}" >> "$version/Dockerfile"
|
||||
;;
|
||||
photon:*)
|
||||
packages=( "${packages[@]/pkgconfig/pkg-config}" )
|
||||
echo "RUN ${installer} install -y ${packages[*]}" >> "$version/Dockerfile"
|
||||
;;
|
||||
*)
|
||||
echo "RUN ${installer} install -y ${packages[*]}" >> "$version/Dockerfile"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
|
||||
awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../../Dockerfile >> "$version/Dockerfile"
|
||||
echo 'RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
|
||||
echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
# print build tags in alphabetical order
|
||||
buildTags=$( echo "selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
|
||||
|
||||
echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
|
||||
echo "ENV RUNC_BUILDTAGS $runcBuildTags" >> "$version/Dockerfile"
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
case "$from" in
|
||||
oraclelinux:6)
|
||||
# We need to set the CGO_CPPFLAGS environment to use the updated UEKR4 headers with all the userns stuff.
|
||||
# The ordering is very important and should not be changed.
|
||||
echo 'ENV CGO_CPPFLAGS -D__EXPORTED_HEADERS__ \' >> "$version/Dockerfile"
|
||||
echo ' -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/arch/x86/include/generated/uapi \' >> "$version/Dockerfile"
|
||||
echo ' -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/arch/x86/include/uapi \' >> "$version/Dockerfile"
|
||||
echo ' -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include/generated/uapi \' >> "$version/Dockerfile"
|
||||
echo ' -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include/uapi \' >> "$version/Dockerfile"
|
||||
echo ' -I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include' >> "$version/Dockerfile"
|
||||
echo >> "$version/Dockerfile"
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
|
||||
done
|
18
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/opensuse-13.2/Dockerfile
generated
vendored
Normal file
18
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/opensuse-13.2/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM opensuse:13.2
|
||||
|
||||
RUN zypper --non-interactive install ca-certificates* curl gzip rpm-build
|
||||
RUN zypper --non-interactive install libbtrfs-devel device-mapper-devel glibc-static libselinux-devel pkg-config selinux-policy selinux-policy-devel systemd-devel tar git cmake vim systemd-rpm-macros
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS selinux
|
||||
ENV RUNC_BUILDTAGS selinux
|
||||
|
28
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/oraclelinux-6/Dockerfile
generated
vendored
Normal file
28
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/oraclelinux-6/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM oraclelinux:6
|
||||
|
||||
RUN yum install -y yum-utils && curl -o /etc/yum.repos.d/public-yum-ol6.repo http://yum.oracle.com/public-yum-ol6.repo && yum-config-manager -q --enable ol6_UEKR4
|
||||
RUN yum install -y kernel-uek-devel-4.1.12-32.el6uek
|
||||
|
||||
RUN yum groupinstall -y "Development Tools"
|
||||
RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static libselinux-devel pkgconfig selinux-policy selinux-policy-devel tar git cmake vim-common
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS selinux
|
||||
ENV RUNC_BUILDTAGS selinux
|
||||
|
||||
ENV CGO_CPPFLAGS -D__EXPORTED_HEADERS__ \
|
||||
-I/usr/src/kernels/4.1.12-32.el6uek.x86_64/arch/x86/include/generated/uapi \
|
||||
-I/usr/src/kernels/4.1.12-32.el6uek.x86_64/arch/x86/include/uapi \
|
||||
-I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include/generated/uapi \
|
||||
-I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include/uapi \
|
||||
-I/usr/src/kernels/4.1.12-32.el6uek.x86_64/include
|
||||
|
18
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/oraclelinux-7/Dockerfile
generated
vendored
Normal file
18
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/oraclelinux-7/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM oraclelinux:7
|
||||
|
||||
RUN yum groupinstall -y "Development Tools"
|
||||
RUN yum install -y --enablerepo=ol7_optional_latest btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel pkgconfig selinux-policy selinux-policy-devel systemd-devel tar git cmake vim-common
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS seccomp selinux
|
||||
ENV RUNC_BUILDTAGS seccomp selinux
|
||||
|
18
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/photon-1.0/Dockerfile
generated
vendored
Normal file
18
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/amd64/photon-1.0/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/amd64/generate.sh"!
|
||||
#
|
||||
|
||||
FROM photon:1.0
|
||||
|
||||
RUN tdnf install -y wget curl ca-certificates gzip make rpm-build sed gcc linux-api-headers glibc-devel binutils libseccomp elfutils
|
||||
RUN tdnf install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel pkg-config selinux-policy selinux-policy-devel systemd-devel tar git cmake vim-common
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS seccomp selinux
|
||||
ENV RUNC_BUILDTAGS seccomp selinux
|
||||
|
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/armhf/build.sh
generated
vendored
Executable file
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/armhf/build.sh
generated
vendored
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
set -x
|
||||
./generate.sh
|
||||
for d in */; do
|
||||
docker build -t "dockercore/builder-rpm:$(basename "$d")" "$d"
|
||||
done
|
20
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/armhf/centos-7/Dockerfile
generated
vendored
Normal file
20
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/armhf/centos-7/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/armhf/generate.sh"!
|
||||
#
|
||||
|
||||
FROM multiarch/centos:7.2.1511-armhfp-clean
|
||||
|
||||
RUN yum install -y yum-plugin-ovl
|
||||
RUN yum groupinstall --skip-broken -y "Development Tools"
|
||||
RUN yum -y swap -- remove systemd-container systemd-container-libs -- install systemd systemd-libs
|
||||
RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar git cmake vim-common
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-armv6l.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS seccomp selinux
|
||||
ENV RUNC_BUILDTAGS seccomp selinux
|
||||
|
122
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/armhf/generate.sh
generated
vendored
Executable file
122
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/armhf/generate.sh
generated
vendored
Executable file
|
@ -0,0 +1,122 @@
|
|||
#!/usr/bin/env bash
|
||||
# vim: set ts=4 sw=4 noet :
|
||||
|
||||
set -e
|
||||
|
||||
# usage: ./generate.sh [versions]
|
||||
# ie: ./generate.sh
|
||||
# to update all Dockerfiles in this directory
|
||||
# or: ./generate.sh centos-7
|
||||
# to only update centos-7/Dockerfile
|
||||
# or: ./generate.sh fedora-newversion
|
||||
# to create a new folder and a Dockerfile within it
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
versions=( "$@" )
|
||||
if [ ${#versions[@]} -eq 0 ]; then
|
||||
versions=( */ )
|
||||
fi
|
||||
versions=( "${versions[@]%/}" )
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
distro="${version%-*}"
|
||||
suite="${version##*-}"
|
||||
from="${distro}:${suite}"
|
||||
installer=yum
|
||||
|
||||
if [[ "$distro" == "fedora" ]]; then
|
||||
installer=dnf
|
||||
fi
|
||||
|
||||
mkdir -p "$version"
|
||||
|
||||
case "$from" in
|
||||
centos:*)
|
||||
# get "Development Tools" packages dependencies
|
||||
image="multiarch/centos:7.2.1511-armhfp-clean"
|
||||
;;
|
||||
*)
|
||||
image="${from}"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "$version -> FROM $image"
|
||||
cat > "$version/Dockerfile" <<-EOF
|
||||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/armhf/generate.sh"!
|
||||
#
|
||||
|
||||
FROM $image
|
||||
EOF
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
extraBuildTags=
|
||||
runcBuildTags=
|
||||
|
||||
case "$from" in
|
||||
fedora:*)
|
||||
echo "RUN ${installer} -y upgrade" >> "$version/Dockerfile"
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
case "$from" in
|
||||
centos:*)
|
||||
# get "Development Tools" packages dependencies
|
||||
|
||||
echo 'RUN yum install -y yum-plugin-ovl' >> "$version/Dockerfile"
|
||||
|
||||
echo 'RUN yum groupinstall --skip-broken -y "Development Tools"' >> "$version/Dockerfile"
|
||||
|
||||
if [[ "$version" == "centos-7" ]]; then
|
||||
echo 'RUN yum -y swap -- remove systemd-container systemd-container-libs -- install systemd systemd-libs' >> "$version/Dockerfile"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "RUN ${installer} install -y @development-tools fedora-packager" >> "$version/Dockerfile"
|
||||
;;
|
||||
esac
|
||||
|
||||
packages=(
|
||||
btrfs-progs-devel # for "btrfs/ioctl.h" (and "version.h" if possible)
|
||||
device-mapper-devel # for "libdevmapper.h"
|
||||
glibc-static
|
||||
libseccomp-devel # for "seccomp.h" & "libseccomp.so"
|
||||
libselinux-devel # for "libselinux.so"
|
||||
pkgconfig # for the pkg-config command
|
||||
selinux-policy
|
||||
selinux-policy-devel
|
||||
sqlite-devel # for "sqlite3.h"
|
||||
systemd-devel # for "sd-journal.h" and libraries
|
||||
tar # older versions of dev-tools do not have tar
|
||||
git # required for containerd and runc clone
|
||||
cmake # tini build
|
||||
vim-common # tini build
|
||||
)
|
||||
|
||||
extraBuildTags+=' seccomp'
|
||||
runcBuildTags="seccomp selinux"
|
||||
|
||||
echo "RUN ${installer} install -y ${packages[*]}" >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../../Dockerfile.armhf >> "$version/Dockerfile"
|
||||
echo 'RUN curl -fSL "https://golang.org/dl/go${GO_VERSION}.linux-armv6l.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
|
||||
echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
# print build tags in alphabetical order
|
||||
buildTags=$( echo "selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
|
||||
|
||||
echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
|
||||
echo "ENV RUNC_BUILDTAGS $runcBuildTags" >> "$version/Dockerfile"
|
||||
echo >> "$version/Dockerfile"
|
||||
done
|
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/ppc64le/build.sh
generated
vendored
Executable file
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/ppc64le/build.sh
generated
vendored
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
set -x
|
||||
./generate.sh
|
||||
for d in */; do
|
||||
docker build -t "dockercore/builder-rpm:$(basename "$d")" "$d"
|
||||
done
|
19
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/ppc64le/centos-7/Dockerfile
generated
vendored
Normal file
19
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/ppc64le/centos-7/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/ppc64le/generate.sh"!
|
||||
#
|
||||
|
||||
FROM ppc64le/centos:7
|
||||
|
||||
RUN yum groupinstall -y "Development Tools"
|
||||
RUN yum -y swap -- remove systemd-container systemd-container-libs -- install systemd systemd-libs
|
||||
RUN yum install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar git cmake vim-common
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-ppc64le.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS seccomp selinux
|
||||
ENV RUNC_BUILDTAGS seccomp selinux
|
||||
|
19
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/ppc64le/fedora-24/Dockerfile
generated
vendored
Normal file
19
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/ppc64le/fedora-24/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/ppc64le/generate.sh"!
|
||||
#
|
||||
|
||||
FROM ppc64le/fedora:24
|
||||
|
||||
RUN dnf -y upgrade
|
||||
RUN dnf install -y @development-tools fedora-packager
|
||||
RUN dnf install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar git cmake vim-common
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-ppc64le.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS seccomp selinux
|
||||
ENV RUNC_BUILDTAGS seccomp selinux
|
||||
|
139
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/ppc64le/generate.sh
generated
vendored
Executable file
139
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/ppc64le/generate.sh
generated
vendored
Executable file
|
@ -0,0 +1,139 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# usage: ./generate.sh [versions]
|
||||
# ie: ./generate.sh
|
||||
# to update all Dockerfiles in this directory
|
||||
# or: ./generate.sh centos-7
|
||||
# to only update centos-7/Dockerfile
|
||||
# or: ./generate.sh fedora-newversion
|
||||
# to create a new folder and a Dockerfile within it
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
versions=( "$@" )
|
||||
if [ ${#versions[@]} -eq 0 ]; then
|
||||
versions=( */ )
|
||||
fi
|
||||
versions=( "${versions[@]%/}" )
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
distro="${version%-*}"
|
||||
suite="${version##*-}"
|
||||
from="ppc64le/${distro}:${suite}"
|
||||
installer=yum
|
||||
|
||||
if [[ "$distro" == "fedora" ]]; then
|
||||
installer=dnf
|
||||
fi
|
||||
|
||||
mkdir -p "$version"
|
||||
echo "$version -> FROM $from"
|
||||
cat > "$version/Dockerfile" <<-EOF
|
||||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/ppc64le/generate.sh"!
|
||||
#
|
||||
|
||||
FROM $from
|
||||
EOF
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
extraBuildTags=
|
||||
runcBuildTags=
|
||||
|
||||
case "$from" in
|
||||
ppc64le/fedora:*)
|
||||
echo "RUN ${installer} -y upgrade" >> "$version/Dockerfile"
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
case "$from" in
|
||||
ppc64le/centos:*)
|
||||
# get "Development Tools" packages dependencies
|
||||
echo 'RUN yum groupinstall -y "Development Tools"' >> "$version/Dockerfile"
|
||||
|
||||
if [[ "$version" == "centos-7" ]]; then
|
||||
echo 'RUN yum -y swap -- remove systemd-container systemd-container-libs -- install systemd systemd-libs' >> "$version/Dockerfile"
|
||||
fi
|
||||
;;
|
||||
ppc64le/opensuse:*)
|
||||
# Add the ppc64le repo (hopefully the image is updated soon)
|
||||
# get rpm-build and curl packages and dependencies
|
||||
echo "RUN zypper addrepo -n ppc64le-oss -f https://download.opensuse.org/ports/ppc/distribution/leap/${suite}/repo/oss/ ppc64le-oss" >> "$version/Dockerfile"
|
||||
echo "RUN zypper addrepo -n ppc64le-updates -f https://download.opensuse.org/ports/update/${suite}/ ppc64le-updates" >> "$version/Dockerfile"
|
||||
echo 'RUN zypper --non-interactive install ca-certificates* curl gzip rpm-build' >> "$version/Dockerfile"
|
||||
;;
|
||||
*)
|
||||
echo "RUN ${installer} install -y @development-tools fedora-packager" >> "$version/Dockerfile"
|
||||
;;
|
||||
esac
|
||||
|
||||
packages=(
|
||||
btrfs-progs-devel # for "btrfs/ioctl.h" (and "version.h" if possible)
|
||||
device-mapper-devel # for "libdevmapper.h"
|
||||
glibc-static
|
||||
libseccomp-devel # for "seccomp.h" & "libseccomp.so"
|
||||
libselinux-devel # for "libselinux.so"
|
||||
pkgconfig # for the pkg-config command
|
||||
selinux-policy
|
||||
selinux-policy-devel
|
||||
sqlite-devel # for "sqlite3.h"
|
||||
systemd-devel # for "sd-journal.h" and libraries
|
||||
tar # older versions of dev-tools do not have tar
|
||||
git # required for containerd and runc clone
|
||||
cmake # tini build
|
||||
vim-common # tini build
|
||||
)
|
||||
|
||||
# opensuse does not have the right libseccomp libs
|
||||
case "$from" in
|
||||
ppc64le/opensuse:*)
|
||||
packages=( "${packages[@]/libseccomp-devel}" )
|
||||
runcBuildTags="selinux"
|
||||
;;
|
||||
*)
|
||||
extraBuildTags+=' seccomp'
|
||||
runcBuildTags="seccomp selinux"
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$from" in
|
||||
ppc64le/opensuse:*)
|
||||
packages=( "${packages[@]/btrfs-progs-devel/libbtrfs-devel}" )
|
||||
packages=( "${packages[@]/pkgconfig/pkg-config}" )
|
||||
packages=( "${packages[@]/vim-common/vim}" )
|
||||
if [[ "$from" == "ppc64le/opensuse:13."* ]]; then
|
||||
packages+=( systemd-rpm-macros )
|
||||
fi
|
||||
|
||||
# use zypper
|
||||
echo "RUN zypper --non-interactive install ${packages[*]}" >> "$version/Dockerfile"
|
||||
;;
|
||||
*)
|
||||
echo "RUN ${installer} install -y ${packages[*]}" >> "$version/Dockerfile"
|
||||
;;
|
||||
esac
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
|
||||
awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../../Dockerfile.ppc64le >> "$version/Dockerfile"
|
||||
echo 'RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-ppc64le.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
|
||||
echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
# print build tags in alphabetical order
|
||||
buildTags=$( echo "selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
|
||||
|
||||
echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
|
||||
echo "ENV RUNC_BUILDTAGS $runcBuildTags" >> "$version/Dockerfile"
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
done
|
20
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/ppc64le/opensuse-42.1/Dockerfile
generated
vendored
Normal file
20
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/ppc64le/opensuse-42.1/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/ppc64le/generate.sh"!
|
||||
#
|
||||
|
||||
FROM ppc64le/opensuse:42.1
|
||||
|
||||
RUN zypper addrepo -n ppc64le-oss -f https://download.opensuse.org/ports/ppc/distribution/leap/42.1/repo/oss/ ppc64le-oss
|
||||
RUN zypper addrepo -n ppc64le-updates -f https://download.opensuse.org/ports/update/42.1/ ppc64le-updates
|
||||
RUN zypper --non-interactive install ca-certificates* curl gzip rpm-build
|
||||
RUN zypper --non-interactive install libbtrfs-devel device-mapper-devel glibc-static libselinux-devel pkg-config selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar git cmake vim
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-ppc64le.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS selinux
|
||||
ENV RUNC_BUILDTAGS selinux
|
||||
|
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/s390x/build.sh
generated
vendored
Executable file
10
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/s390x/build.sh
generated
vendored
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
set -x
|
||||
./generate.sh
|
||||
for d in */; do
|
||||
docker build -t "dockercore/builder-rpm:$(basename "$d")" "$d"
|
||||
done
|
19
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/s390x/clefos-base-s390x-7/Dockerfile
generated
vendored
Normal file
19
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/s390x/clefos-base-s390x-7/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/s390x/generate.sh"!
|
||||
#
|
||||
|
||||
FROM sinenomine/clefos-base-s390x
|
||||
|
||||
|
||||
RUN touch /var/lib/rpm/* && yum groupinstall -y "Development Tools"
|
||||
RUN touch /var/lib/rpm/* && yum install -y btrfs-progs-devel device-mapper-devel glibc-static libseccomp-devel libselinux-devel pkgconfig selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar git cmake vim-common
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-s390x.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS seccomp selinux
|
||||
ENV RUNC_BUILDTAGS seccomp selinux
|
||||
RUN ln -s /usr/bin/gcc /usr/bin/s390x-linux-gnu-gcc
|
144
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/s390x/generate.sh
generated
vendored
Executable file
144
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/s390x/generate.sh
generated
vendored
Executable file
|
@ -0,0 +1,144 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# This file is used to auto-generate Dockerfiles for making rpms via 'make rpm'
|
||||
#
|
||||
# usage: ./generate.sh [versions]
|
||||
# ie: ./generate.sh
|
||||
# to update all Dockerfiles in this directory
|
||||
# or: ./generate.sh centos-7
|
||||
# to only update centos-7/Dockerfile
|
||||
# or: ./generate.sh fedora-newversion
|
||||
# to create a new folder and a Dockerfile within it
|
||||
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
versions=( "$@" )
|
||||
if [ ${#versions[@]} -eq 0 ]; then
|
||||
versions=( */ )
|
||||
fi
|
||||
versions=( "${versions[@]%/}" )
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
echo "${versions[@]}"
|
||||
distro="${version%-*}"
|
||||
suite="${version##*-}"
|
||||
case "$distro" in
|
||||
*opensuse*)
|
||||
from="opensuse/s390x:tumbleweed"
|
||||
;;
|
||||
*clefos*)
|
||||
from="sinenomine/${distro}"
|
||||
;;
|
||||
*)
|
||||
echo No appropriate or supported image available.
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
installer=yum
|
||||
|
||||
mkdir -p "$version"
|
||||
echo "$version -> FROM $from"
|
||||
cat > "$version/Dockerfile" <<-EOF
|
||||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/s390x/generate.sh"!
|
||||
#
|
||||
|
||||
FROM $from
|
||||
|
||||
EOF
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
extraBuildTags=''
|
||||
runcBuildTags=
|
||||
|
||||
case "$from" in
|
||||
*clefos*)
|
||||
# Fix for RHBZ #1213602 + get "Development Tools" packages dependencies
|
||||
echo 'RUN touch /var/lib/rpm/* && yum groupinstall -y "Development Tools"' >> "$version/Dockerfile"
|
||||
;;
|
||||
*opensuse*)
|
||||
echo "RUN zypper ar https://download.opensuse.org/ports/zsystems/tumbleweed/repo/oss/ tumbleweed" >> "$version/Dockerfile"
|
||||
# get rpm-build and curl packages and dependencies
|
||||
echo 'RUN zypper --non-interactive install ca-certificates* curl gzip rpm-build' >> "$version/Dockerfile"
|
||||
;;
|
||||
*)
|
||||
echo No appropriate or supported image available.
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
packages=(
|
||||
btrfs-progs-devel # for "btrfs/ioctl.h" (and "version.h" if possible)
|
||||
device-mapper-devel # for "libdevmapper.h"
|
||||
glibc-static
|
||||
libseccomp-devel # for "seccomp.h" & "libseccomp.so"
|
||||
libselinux-devel # for "libselinux.so"
|
||||
pkgconfig # for the pkg-config command
|
||||
selinux-policy
|
||||
selinux-policy-devel
|
||||
sqlite-devel # for "sqlite3.h"
|
||||
systemd-devel # for "sd-journal.h" and libraries
|
||||
tar # older versions of dev-tools do not have tar
|
||||
git # required for containerd and runc clone
|
||||
cmake # tini build
|
||||
vim-common # tini build
|
||||
)
|
||||
|
||||
case "$from" in
|
||||
*clefos*)
|
||||
extraBuildTags+=' seccomp'
|
||||
runcBuildTags="seccomp selinux"
|
||||
;;
|
||||
*opensuse*)
|
||||
packages=( "${packages[@]/libseccomp-devel}" )
|
||||
runcBuildTags="selinux"
|
||||
;;
|
||||
*)
|
||||
echo No appropriate or supported image available.
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$from" in
|
||||
*clefos*)
|
||||
# Same RHBZ fix needed on all yum lines
|
||||
echo "RUN touch /var/lib/rpm/* && ${installer} install -y ${packages[*]}" >> "$version/Dockerfile"
|
||||
;;
|
||||
*opensuse*)
|
||||
packages=( "${packages[@]/btrfs-progs-devel/libbtrfs-devel}" )
|
||||
packages=( "${packages[@]/pkgconfig/pkg-config}" )
|
||||
packages=( "${packages[@]/vim-common/vim}" )
|
||||
|
||||
packages+=( systemd-rpm-macros ) # for use of >= opensuse:13.*
|
||||
|
||||
# use zypper
|
||||
echo "RUN zypper --non-interactive install ${packages[*]}" >> "$version/Dockerfile"
|
||||
;;
|
||||
*)
|
||||
echo No appropriate or supported image available.
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
awk '$1 == "ENV" && $2 == "GO_VERSION" { print; exit }' ../../../../Dockerfile.s390x >> "$version/Dockerfile"
|
||||
echo 'RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-s390x.tar.gz" | tar xzC /usr/local' >> "$version/Dockerfile"
|
||||
echo 'ENV PATH $PATH:/usr/local/go/bin' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
echo 'ENV AUTO_GOPATH 1' >> "$version/Dockerfile"
|
||||
|
||||
echo >> "$version/Dockerfile"
|
||||
|
||||
# print build tags in alphabetical order
|
||||
buildTags=$( echo "selinux $extraBuildTags" | xargs -n1 | sort -n | tr '\n' ' ' | sed -e 's/[[:space:]]*$//' )
|
||||
|
||||
echo "ENV DOCKER_BUILDTAGS $buildTags" >> "$version/Dockerfile"
|
||||
echo "ENV RUNC_BUILDTAGS $runcBuildTags" >> "$version/Dockerfile"
|
||||
# TODO: Investigate why "s390x-linux-gnu-gcc" is required
|
||||
echo "RUN ln -s /usr/bin/gcc /usr/bin/s390x-linux-gnu-gcc" >> "$version/Dockerfile"
|
||||
done
|
20
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/s390x/opensuse-tumbleweed-1/Dockerfile
generated
vendored
Normal file
20
vendor/github.com/docker/docker-ce/components/engine/contrib/builder/rpm/s390x/opensuse-tumbleweed-1/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# THIS FILE IS AUTOGENERATED; SEE "contrib/builder/rpm/s390x/generate.sh"!
|
||||
#
|
||||
|
||||
FROM opensuse/s390x:tumbleweed
|
||||
|
||||
|
||||
RUN zypper ar https://download.opensuse.org/ports/zsystems/tumbleweed/repo/oss/ tumbleweed
|
||||
RUN zypper --non-interactive install ca-certificates* curl gzip rpm-build
|
||||
RUN zypper --non-interactive install libbtrfs-devel device-mapper-devel glibc-static libselinux-devel pkg-config selinux-policy selinux-policy-devel sqlite-devel systemd-devel tar git cmake vim systemd-rpm-macros
|
||||
|
||||
ENV GO_VERSION 1.9.4
|
||||
RUN curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-s390x.tar.gz" | tar xzC /usr/local
|
||||
ENV PATH $PATH:/usr/local/go/bin
|
||||
|
||||
ENV AUTO_GOPATH 1
|
||||
|
||||
ENV DOCKER_BUILDTAGS selinux
|
||||
ENV RUNC_BUILDTAGS selinux
|
||||
RUN ln -s /usr/bin/gcc /usr/bin/s390x-linux-gnu-gcc
|
360
vendor/github.com/docker/docker-ce/components/engine/contrib/check-config.sh
generated
vendored
Executable file
360
vendor/github.com/docker/docker-ce/components/engine/contrib/check-config.sh
generated
vendored
Executable file
|
@ -0,0 +1,360 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
EXITCODE=0
|
||||
|
||||
# bits of this were adapted from lxc-checkconfig
|
||||
# see also https://github.com/lxc/lxc/blob/lxc-1.0.2/src/lxc/lxc-checkconfig.in
|
||||
|
||||
possibleConfigs=(
|
||||
'/proc/config.gz'
|
||||
"/boot/config-$(uname -r)"
|
||||
"/usr/src/linux-$(uname -r)/.config"
|
||||
'/usr/src/linux/.config'
|
||||
)
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
CONFIG="$1"
|
||||
else
|
||||
: ${CONFIG:="${possibleConfigs[0]}"}
|
||||
fi
|
||||
|
||||
if ! command -v zgrep &> /dev/null; then
|
||||
zgrep() {
|
||||
zcat "$2" | grep "$1"
|
||||
}
|
||||
fi
|
||||
|
||||
kernelVersion="$(uname -r)"
|
||||
kernelMajor="${kernelVersion%%.*}"
|
||||
kernelMinor="${kernelVersion#$kernelMajor.}"
|
||||
kernelMinor="${kernelMinor%%.*}"
|
||||
|
||||
is_set() {
|
||||
zgrep "CONFIG_$1=[y|m]" "$CONFIG" > /dev/null
|
||||
}
|
||||
is_set_in_kernel() {
|
||||
zgrep "CONFIG_$1=y" "$CONFIG" > /dev/null
|
||||
}
|
||||
is_set_as_module() {
|
||||
zgrep "CONFIG_$1=m" "$CONFIG" > /dev/null
|
||||
}
|
||||
|
||||
color() {
|
||||
local codes=()
|
||||
if [ "$1" = 'bold' ]; then
|
||||
codes=( "${codes[@]}" '1' )
|
||||
shift
|
||||
fi
|
||||
if [ "$#" -gt 0 ]; then
|
||||
local code=
|
||||
case "$1" in
|
||||
# see https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
|
||||
black) code=30 ;;
|
||||
red) code=31 ;;
|
||||
green) code=32 ;;
|
||||
yellow) code=33 ;;
|
||||
blue) code=34 ;;
|
||||
magenta) code=35 ;;
|
||||
cyan) code=36 ;;
|
||||
white) code=37 ;;
|
||||
esac
|
||||
if [ "$code" ]; then
|
||||
codes=( "${codes[@]}" "$code" )
|
||||
fi
|
||||
fi
|
||||
local IFS=';'
|
||||
echo -en '\033['"${codes[*]}"'m'
|
||||
}
|
||||
wrap_color() {
|
||||
text="$1"
|
||||
shift
|
||||
color "$@"
|
||||
echo -n "$text"
|
||||
color reset
|
||||
echo
|
||||
}
|
||||
|
||||
wrap_good() {
|
||||
echo "$(wrap_color "$1" white): $(wrap_color "$2" green)"
|
||||
}
|
||||
wrap_bad() {
|
||||
echo "$(wrap_color "$1" bold): $(wrap_color "$2" bold red)"
|
||||
}
|
||||
wrap_warning() {
|
||||
wrap_color >&2 "$*" red
|
||||
}
|
||||
|
||||
check_flag() {
|
||||
if is_set_in_kernel "$1"; then
|
||||
wrap_good "CONFIG_$1" 'enabled'
|
||||
elif is_set_as_module "$1"; then
|
||||
wrap_good "CONFIG_$1" 'enabled (as module)'
|
||||
else
|
||||
wrap_bad "CONFIG_$1" 'missing'
|
||||
EXITCODE=1
|
||||
fi
|
||||
}
|
||||
|
||||
check_flags() {
|
||||
for flag in "$@"; do
|
||||
echo -n "- "; check_flag "$flag"
|
||||
done
|
||||
}
|
||||
|
||||
check_command() {
|
||||
if command -v "$1" >/dev/null 2>&1; then
|
||||
wrap_good "$1 command" 'available'
|
||||
else
|
||||
wrap_bad "$1 command" 'missing'
|
||||
EXITCODE=1
|
||||
fi
|
||||
}
|
||||
|
||||
check_device() {
|
||||
if [ -c "$1" ]; then
|
||||
wrap_good "$1" 'present'
|
||||
else
|
||||
wrap_bad "$1" 'missing'
|
||||
EXITCODE=1
|
||||
fi
|
||||
}
|
||||
|
||||
check_distro_userns() {
|
||||
source /etc/os-release 2>/dev/null || /bin/true
|
||||
if [[ "${ID}" =~ ^(centos|rhel)$ && "${VERSION_ID}" =~ ^7 ]]; then
|
||||
# this is a CentOS7 or RHEL7 system
|
||||
grep -q "user_namespace.enable=1" /proc/cmdline || {
|
||||
# no user namespace support enabled
|
||||
wrap_bad " (RHEL7/CentOS7" "User namespaces disabled; add 'user_namespace.enable=1' to boot command line)"
|
||||
EXITCODE=1
|
||||
}
|
||||
fi
|
||||
}
|
||||
|
||||
if [ ! -e "$CONFIG" ]; then
|
||||
wrap_warning "warning: $CONFIG does not exist, searching other paths for kernel config ..."
|
||||
for tryConfig in "${possibleConfigs[@]}"; do
|
||||
if [ -e "$tryConfig" ]; then
|
||||
CONFIG="$tryConfig"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ ! -e "$CONFIG" ]; then
|
||||
wrap_warning "error: cannot find kernel config"
|
||||
wrap_warning " try running this script again, specifying the kernel config:"
|
||||
wrap_warning " CONFIG=/path/to/kernel/.config $0 or $0 /path/to/kernel/.config"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
wrap_color "info: reading kernel config from $CONFIG ..." white
|
||||
echo
|
||||
|
||||
echo 'Generally Necessary:'
|
||||
|
||||
echo -n '- '
|
||||
cgroupSubsystemDir="$(awk '/[, ](cpu|cpuacct|cpuset|devices|freezer|memory)[, ]/ && $3 == "cgroup" { print $2 }' /proc/mounts | head -n1)"
|
||||
cgroupDir="$(dirname "$cgroupSubsystemDir")"
|
||||
if [ -d "$cgroupDir/cpu" -o -d "$cgroupDir/cpuacct" -o -d "$cgroupDir/cpuset" -o -d "$cgroupDir/devices" -o -d "$cgroupDir/freezer" -o -d "$cgroupDir/memory" ]; then
|
||||
echo "$(wrap_good 'cgroup hierarchy' 'properly mounted') [$cgroupDir]"
|
||||
else
|
||||
if [ "$cgroupSubsystemDir" ]; then
|
||||
echo "$(wrap_bad 'cgroup hierarchy' 'single mountpoint!') [$cgroupSubsystemDir]"
|
||||
else
|
||||
echo "$(wrap_bad 'cgroup hierarchy' 'nonexistent??')"
|
||||
fi
|
||||
EXITCODE=1
|
||||
echo " $(wrap_color '(see https://github.com/tianon/cgroupfs-mount)' yellow)"
|
||||
fi
|
||||
|
||||
if [ "$(cat /sys/module/apparmor/parameters/enabled 2>/dev/null)" = 'Y' ]; then
|
||||
echo -n '- '
|
||||
if command -v apparmor_parser &> /dev/null; then
|
||||
echo "$(wrap_good 'apparmor' 'enabled and tools installed')"
|
||||
else
|
||||
echo "$(wrap_bad 'apparmor' 'enabled, but apparmor_parser missing')"
|
||||
echo -n ' '
|
||||
if command -v apt-get &> /dev/null; then
|
||||
echo "$(wrap_color '(use "apt-get install apparmor" to fix this)')"
|
||||
elif command -v yum &> /dev/null; then
|
||||
echo "$(wrap_color '(your best bet is "yum install apparmor-parser")')"
|
||||
else
|
||||
echo "$(wrap_color '(look for an "apparmor" package for your distribution)')"
|
||||
fi
|
||||
EXITCODE=1
|
||||
fi
|
||||
fi
|
||||
|
||||
flags=(
|
||||
NAMESPACES {NET,PID,IPC,UTS}_NS
|
||||
CGROUPS CGROUP_CPUACCT CGROUP_DEVICE CGROUP_FREEZER CGROUP_SCHED CPUSETS MEMCG
|
||||
KEYS
|
||||
VETH BRIDGE BRIDGE_NETFILTER
|
||||
NF_NAT_IPV4 IP_NF_FILTER IP_NF_TARGET_MASQUERADE
|
||||
NETFILTER_XT_MATCH_{ADDRTYPE,CONNTRACK,IPVS}
|
||||
IP_NF_NAT NF_NAT NF_NAT_NEEDED
|
||||
|
||||
# required for bind-mounting /dev/mqueue into containers
|
||||
POSIX_MQUEUE
|
||||
)
|
||||
check_flags "${flags[@]}"
|
||||
if [ "$kernelMajor" -lt 4 ] || [ "$kernelMajor" -eq 4 -a "$kernelMinor" -lt 8 ]; then
|
||||
check_flags DEVPTS_MULTIPLE_INSTANCES
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
echo 'Optional Features:'
|
||||
{
|
||||
check_flags USER_NS
|
||||
check_distro_userns
|
||||
}
|
||||
{
|
||||
check_flags SECCOMP
|
||||
}
|
||||
{
|
||||
check_flags CGROUP_PIDS
|
||||
}
|
||||
{
|
||||
CODE=${EXITCODE}
|
||||
check_flags MEMCG_SWAP MEMCG_SWAP_ENABLED
|
||||
if [ -e /sys/fs/cgroup/memory/memory.memsw.limit_in_bytes ]; then
|
||||
echo " $(wrap_color '(cgroup swap accounting is currently enabled)' bold black)"
|
||||
EXITCODE=${CODE}
|
||||
elif is_set MEMCG_SWAP && ! is_set MEMCG_SWAP_ENABLED; then
|
||||
echo " $(wrap_color '(cgroup swap accounting is currently not enabled, you can enable it by setting boot option "swapaccount=1")' bold black)"
|
||||
fi
|
||||
}
|
||||
{
|
||||
if is_set LEGACY_VSYSCALL_NATIVE; then
|
||||
echo -n "- "; wrap_bad "CONFIG_LEGACY_VSYSCALL_NATIVE" 'enabled'
|
||||
echo " $(wrap_color '(dangerous, provides an ASLR-bypassing target with usable ROP gadgets.)' bold black)"
|
||||
elif is_set LEGACY_VSYSCALL_EMULATE; then
|
||||
echo -n "- "; wrap_good "CONFIG_LEGACY_VSYSCALL_EMULATE" 'enabled'
|
||||
elif is_set LEGACY_VSYSCALL_NONE; then
|
||||
echo -n "- "; wrap_bad "CONFIG_LEGACY_VSYSCALL_NONE" 'enabled'
|
||||
echo " $(wrap_color '(containers using eglibc <= 2.13 will not work. Switch to' bold black)"
|
||||
echo " $(wrap_color ' "CONFIG_VSYSCALL_[NATIVE|EMULATE]" or use "vsyscall=[native|emulate]"' bold black)"
|
||||
echo " $(wrap_color ' on kernel command line. Note that this will disable ASLR for the,' bold black)"
|
||||
echo " $(wrap_color ' VDSO which may assist in exploiting security vulnerabilities.)' bold black)"
|
||||
# else Older kernels (prior to 3dc33bd30f3e, released in v4.40-rc1) do
|
||||
# not have these LEGACY_VSYSCALL options and are effectively
|
||||
# LEGACY_VSYSCALL_EMULATE. Even older kernels are presumably
|
||||
# effectively LEGACY_VSYSCALL_NATIVE.
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$kernelMajor" -lt 4 ] || [ "$kernelMajor" -eq 4 -a "$kernelMinor" -le 5 ]; then
|
||||
check_flags MEMCG_KMEM
|
||||
fi
|
||||
|
||||
if [ "$kernelMajor" -lt 3 ] || [ "$kernelMajor" -eq 3 -a "$kernelMinor" -le 18 ]; then
|
||||
check_flags RESOURCE_COUNTERS
|
||||
fi
|
||||
|
||||
if [ "$kernelMajor" -lt 3 ] || [ "$kernelMajor" -eq 3 -a "$kernelMinor" -le 13 ]; then
|
||||
netprio=NETPRIO_CGROUP
|
||||
else
|
||||
netprio=CGROUP_NET_PRIO
|
||||
fi
|
||||
|
||||
flags=(
|
||||
BLK_CGROUP BLK_DEV_THROTTLING IOSCHED_CFQ CFQ_GROUP_IOSCHED
|
||||
CGROUP_PERF
|
||||
CGROUP_HUGETLB
|
||||
NET_CLS_CGROUP $netprio
|
||||
CFS_BANDWIDTH FAIR_GROUP_SCHED RT_GROUP_SCHED
|
||||
IP_VS
|
||||
IP_VS_NFCT
|
||||
IP_VS_RR
|
||||
)
|
||||
check_flags "${flags[@]}"
|
||||
|
||||
if ! is_set EXT4_USE_FOR_EXT2; then
|
||||
check_flags EXT3_FS EXT3_FS_XATTR EXT3_FS_POSIX_ACL EXT3_FS_SECURITY
|
||||
if ! is_set EXT3_FS || ! is_set EXT3_FS_XATTR || ! is_set EXT3_FS_POSIX_ACL || ! is_set EXT3_FS_SECURITY; then
|
||||
echo " $(wrap_color '(enable these ext3 configs if you are using ext3 as backing filesystem)' bold black)"
|
||||
fi
|
||||
fi
|
||||
|
||||
check_flags EXT4_FS EXT4_FS_POSIX_ACL EXT4_FS_SECURITY
|
||||
if ! is_set EXT4_FS || ! is_set EXT4_FS_POSIX_ACL || ! is_set EXT4_FS_SECURITY; then
|
||||
if is_set EXT4_USE_FOR_EXT2; then
|
||||
echo " $(wrap_color 'enable these ext4 configs if you are using ext3 or ext4 as backing filesystem' bold black)"
|
||||
else
|
||||
echo " $(wrap_color 'enable these ext4 configs if you are using ext4 as backing filesystem' bold black)"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo '- Network Drivers:'
|
||||
echo ' - "'$(wrap_color 'overlay' blue)'":'
|
||||
check_flags VXLAN | sed 's/^/ /'
|
||||
echo ' Optional (for encrypted networks):'
|
||||
check_flags CRYPTO CRYPTO_AEAD CRYPTO_GCM CRYPTO_SEQIV CRYPTO_GHASH \
|
||||
XFRM XFRM_USER XFRM_ALGO INET_ESP INET_XFRM_MODE_TRANSPORT | sed 's/^/ /'
|
||||
echo ' - "'$(wrap_color 'ipvlan' blue)'":'
|
||||
check_flags IPVLAN | sed 's/^/ /'
|
||||
echo ' - "'$(wrap_color 'macvlan' blue)'":'
|
||||
check_flags MACVLAN DUMMY | sed 's/^/ /'
|
||||
echo ' - "'$(wrap_color 'ftp,tftp client in container' blue)'":'
|
||||
check_flags NF_NAT_FTP NF_CONNTRACK_FTP NF_NAT_TFTP NF_CONNTRACK_TFTP | sed 's/^/ /'
|
||||
|
||||
# only fail if no storage drivers available
|
||||
CODE=${EXITCODE}
|
||||
EXITCODE=0
|
||||
STORAGE=1
|
||||
|
||||
echo '- Storage Drivers:'
|
||||
echo ' - "'$(wrap_color 'aufs' blue)'":'
|
||||
check_flags AUFS_FS | sed 's/^/ /'
|
||||
if ! is_set AUFS_FS && grep -q aufs /proc/filesystems; then
|
||||
echo " $(wrap_color '(note that some kernels include AUFS patches but not the AUFS_FS flag)' bold black)"
|
||||
fi
|
||||
[ "$EXITCODE" = 0 ] && STORAGE=0
|
||||
EXITCODE=0
|
||||
|
||||
echo ' - "'$(wrap_color 'btrfs' blue)'":'
|
||||
check_flags BTRFS_FS | sed 's/^/ /'
|
||||
check_flags BTRFS_FS_POSIX_ACL | sed 's/^/ /'
|
||||
[ "$EXITCODE" = 0 ] && STORAGE=0
|
||||
EXITCODE=0
|
||||
|
||||
echo ' - "'$(wrap_color 'devicemapper' blue)'":'
|
||||
check_flags BLK_DEV_DM DM_THIN_PROVISIONING | sed 's/^/ /'
|
||||
[ "$EXITCODE" = 0 ] && STORAGE=0
|
||||
EXITCODE=0
|
||||
|
||||
echo ' - "'$(wrap_color 'overlay' blue)'":'
|
||||
check_flags OVERLAY_FS | sed 's/^/ /'
|
||||
[ "$EXITCODE" = 0 ] && STORAGE=0
|
||||
EXITCODE=0
|
||||
|
||||
echo ' - "'$(wrap_color 'zfs' blue)'":'
|
||||
echo -n " - "; check_device /dev/zfs
|
||||
echo -n " - "; check_command zfs
|
||||
echo -n " - "; check_command zpool
|
||||
[ "$EXITCODE" = 0 ] && STORAGE=0
|
||||
EXITCODE=0
|
||||
|
||||
EXITCODE=$CODE
|
||||
[ "$STORAGE" = 1 ] && EXITCODE=1
|
||||
|
||||
echo
|
||||
|
||||
check_limit_over()
|
||||
{
|
||||
if [ $(cat "$1") -le "$2" ]; then
|
||||
wrap_bad "- $1" "$(cat $1)"
|
||||
wrap_color " This should be set to at least $2, for example set: sysctl -w kernel/keys/root_maxkeys=1000000" bold black
|
||||
EXITCODE=1
|
||||
else
|
||||
wrap_good "- $1" "$(cat $1)"
|
||||
fi
|
||||
}
|
||||
|
||||
echo 'Limits:'
|
||||
check_limit_over /proc/sys/kernel/keys/root_maxkeys 10000
|
||||
echo
|
||||
|
||||
exit $EXITCODE
|
11
vendor/github.com/docker/docker-ce/components/engine/contrib/desktop-integration/README.md
generated
vendored
Normal file
11
vendor/github.com/docker/docker-ce/components/engine/contrib/desktop-integration/README.md
generated
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
Desktop Integration
|
||||
===================
|
||||
|
||||
The ./contrib/desktop-integration contains examples of typical dockerized
|
||||
desktop applications.
|
||||
|
||||
Examples
|
||||
========
|
||||
|
||||
* Chromium: ./chromium/Dockerfile shows a way to dockerize a common application
|
||||
* Gparted: ./gparted/Dockerfile shows a way to dockerize a common application w devices
|
36
vendor/github.com/docker/docker-ce/components/engine/contrib/desktop-integration/chromium/Dockerfile
generated
vendored
Normal file
36
vendor/github.com/docker/docker-ce/components/engine/contrib/desktop-integration/chromium/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
# VERSION: 0.1
|
||||
# DESCRIPTION: Create chromium container with its dependencies
|
||||
# AUTHOR: Jessica Frazelle <jess@docker.com>
|
||||
# COMMENTS:
|
||||
# This file describes how to build a Chromium container with all
|
||||
# dependencies installed. It uses native X11 unix socket.
|
||||
# Tested on Debian Jessie
|
||||
# USAGE:
|
||||
# # Download Chromium Dockerfile
|
||||
# wget http://raw.githubusercontent.com/docker/docker/master/contrib/desktop-integration/chromium/Dockerfile
|
||||
#
|
||||
# # Build chromium image
|
||||
# docker build -t chromium .
|
||||
#
|
||||
# # Run stateful data-on-host chromium. For ephemeral, remove -v /data/chromium:/data
|
||||
# docker run -v /data/chromium:/data -v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||
# -e DISPLAY=unix$DISPLAY chromium
|
||||
|
||||
# # To run stateful dockerized data containers
|
||||
# docker run --volumes-from chromium-data -v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||
# -e DISPLAY=unix$DISPLAY chromium
|
||||
|
||||
# Base docker image
|
||||
FROM debian:jessie
|
||||
LABEL maintainer Jessica Frazelle <jess@docker.com>
|
||||
|
||||
# Install Chromium
|
||||
RUN apt-get update && apt-get install -y \
|
||||
chromium \
|
||||
chromium-l10n \
|
||||
libcanberra-gtk-module \
|
||||
libexif-dev \
|
||||
--no-install-recommends
|
||||
|
||||
# Autorun chromium
|
||||
CMD ["/usr/bin/chromium", "--no-sandbox", "--user-data-dir=/data"]
|
31
vendor/github.com/docker/docker-ce/components/engine/contrib/desktop-integration/gparted/Dockerfile
generated
vendored
Normal file
31
vendor/github.com/docker/docker-ce/components/engine/contrib/desktop-integration/gparted/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
# VERSION: 0.1
|
||||
# DESCRIPTION: Create gparted container with its dependencies
|
||||
# AUTHOR: Jessica Frazelle <jess@docker.com>
|
||||
# COMMENTS:
|
||||
# This file describes how to build a gparted container with all
|
||||
# dependencies installed. It uses native X11 unix socket.
|
||||
# Tested on Debian Jessie
|
||||
# USAGE:
|
||||
# # Download gparted Dockerfile
|
||||
# wget http://raw.githubusercontent.com/docker/docker/master/contrib/desktop-integration/gparted/Dockerfile
|
||||
#
|
||||
# # Build gparted image
|
||||
# docker build -t gparted .
|
||||
#
|
||||
# docker run -v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||
# --device=/dev/sda:/dev/sda \
|
||||
# -e DISPLAY=unix$DISPLAY gparted
|
||||
#
|
||||
|
||||
# Base docker image
|
||||
FROM debian:jessie
|
||||
LABEL maintainer Jessica Frazelle <jess@docker.com>
|
||||
|
||||
# Install Gparted and its dependencies
|
||||
RUN apt-get update && apt-get install -y \
|
||||
gparted \
|
||||
libcanberra-gtk-module \
|
||||
--no-install-recommends
|
||||
|
||||
# Autorun gparted
|
||||
CMD ["/usr/sbin/gparted"]
|
14
vendor/github.com/docker/docker-ce/components/engine/contrib/docker-device-tool/README.md
generated
vendored
Normal file
14
vendor/github.com/docker/docker-ce/components/engine/contrib/docker-device-tool/README.md
generated
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
Docker device tool for devicemapper storage driver backend
|
||||
===================
|
||||
|
||||
The ./contrib/docker-device-tool contains a tool to manipulate devicemapper thin-pool.
|
||||
|
||||
Compile
|
||||
========
|
||||
|
||||
$ make shell
|
||||
## inside build container
|
||||
$ go build contrib/docker-device-tool/device_tool.go
|
||||
|
||||
# if devicemapper version is old and compilation fails, compile with `libdm_no_deferred_remove` tag
|
||||
$ go build -tags libdm_no_deferred_remove contrib/docker-device-tool/device_tool.go
|
167
vendor/github.com/docker/docker-ce/components/engine/contrib/docker-device-tool/device_tool.go
generated
vendored
Normal file
167
vendor/github.com/docker/docker-ce/components/engine/contrib/docker-device-tool/device_tool.go
generated
vendored
Normal file
|
@ -0,0 +1,167 @@
|
|||
// +build !windows
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"path"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/docker/docker/daemon/graphdriver/devmapper"
|
||||
"github.com/docker/docker/pkg/devicemapper"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func usage() {
|
||||
fmt.Fprintf(os.Stderr, "Usage: %s <flags> [status] | [list] | [device id] | [resize new-pool-size] | [snap new-id base-id] | [remove id] | [mount id mountpoint]\n", os.Args[0])
|
||||
flag.PrintDefaults()
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
func byteSizeFromString(arg string) (int64, error) {
|
||||
digits := ""
|
||||
rest := ""
|
||||
last := strings.LastIndexAny(arg, "0123456789")
|
||||
if last >= 0 {
|
||||
digits = arg[:last+1]
|
||||
rest = arg[last+1:]
|
||||
}
|
||||
|
||||
val, err := strconv.ParseInt(digits, 10, 64)
|
||||
if err != nil {
|
||||
return val, err
|
||||
}
|
||||
|
||||
rest = strings.ToLower(strings.TrimSpace(rest))
|
||||
|
||||
var multiplier int64 = 1
|
||||
switch rest {
|
||||
case "":
|
||||
multiplier = 1
|
||||
case "k", "kb":
|
||||
multiplier = 1024
|
||||
case "m", "mb":
|
||||
multiplier = 1024 * 1024
|
||||
case "g", "gb":
|
||||
multiplier = 1024 * 1024 * 1024
|
||||
case "t", "tb":
|
||||
multiplier = 1024 * 1024 * 1024 * 1024
|
||||
default:
|
||||
return 0, fmt.Errorf("Unknown size unit: %s", rest)
|
||||
}
|
||||
|
||||
return val * multiplier, nil
|
||||
}
|
||||
|
||||
func main() {
|
||||
root := flag.String("r", "/var/lib/docker", "Docker root dir")
|
||||
flDebug := flag.Bool("D", false, "Debug mode")
|
||||
|
||||
flag.Parse()
|
||||
|
||||
if *flDebug {
|
||||
os.Setenv("DEBUG", "1")
|
||||
logrus.SetLevel(logrus.DebugLevel)
|
||||
}
|
||||
|
||||
if flag.NArg() < 1 {
|
||||
usage()
|
||||
}
|
||||
|
||||
args := flag.Args()
|
||||
|
||||
home := path.Join(*root, "devicemapper")
|
||||
devices, err := devmapper.NewDeviceSet(home, false, nil, nil, nil)
|
||||
if err != nil {
|
||||
fmt.Println("Can't initialize device mapper: ", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
switch args[0] {
|
||||
case "status":
|
||||
status := devices.Status()
|
||||
fmt.Printf("Pool name: %s\n", status.PoolName)
|
||||
fmt.Printf("Data Loopback file: %s\n", status.DataLoopback)
|
||||
fmt.Printf("Metadata Loopback file: %s\n", status.MetadataLoopback)
|
||||
fmt.Printf("Sector size: %d\n", status.SectorSize)
|
||||
fmt.Printf("Data use: %d of %d (%.1f %%)\n", status.Data.Used, status.Data.Total, 100.0*float64(status.Data.Used)/float64(status.Data.Total))
|
||||
fmt.Printf("Metadata use: %d of %d (%.1f %%)\n", status.Metadata.Used, status.Metadata.Total, 100.0*float64(status.Metadata.Used)/float64(status.Metadata.Total))
|
||||
case "list":
|
||||
ids := devices.List()
|
||||
sort.Strings(ids)
|
||||
for _, id := range ids {
|
||||
fmt.Println(id)
|
||||
}
|
||||
case "device":
|
||||
if flag.NArg() < 2 {
|
||||
usage()
|
||||
}
|
||||
status, err := devices.GetDeviceStatus(args[1])
|
||||
if err != nil {
|
||||
fmt.Println("Can't get device info: ", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
fmt.Printf("Id: %d\n", status.DeviceID)
|
||||
fmt.Printf("Size: %d\n", status.Size)
|
||||
fmt.Printf("Transaction Id: %d\n", status.TransactionID)
|
||||
fmt.Printf("Size in Sectors: %d\n", status.SizeInSectors)
|
||||
fmt.Printf("Mapped Sectors: %d\n", status.MappedSectors)
|
||||
fmt.Printf("Highest Mapped Sector: %d\n", status.HighestMappedSector)
|
||||
case "resize":
|
||||
if flag.NArg() < 2 {
|
||||
usage()
|
||||
}
|
||||
|
||||
size, err := byteSizeFromString(args[1])
|
||||
if err != nil {
|
||||
fmt.Println("Invalid size: ", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
err = devices.ResizePool(size)
|
||||
if err != nil {
|
||||
fmt.Println("Error resizing pool: ", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
case "snap":
|
||||
if flag.NArg() < 3 {
|
||||
usage()
|
||||
}
|
||||
|
||||
err := devices.AddDevice(args[1], args[2], nil)
|
||||
if err != nil {
|
||||
fmt.Println("Can't create snap device: ", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
case "remove":
|
||||
if flag.NArg() < 2 {
|
||||
usage()
|
||||
}
|
||||
|
||||
err := devicemapper.RemoveDevice(args[1])
|
||||
if err != nil {
|
||||
fmt.Println("Can't remove device: ", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
case "mount":
|
||||
if flag.NArg() < 3 {
|
||||
usage()
|
||||
}
|
||||
|
||||
err := devices.MountDevice(args[1], args[2], "")
|
||||
if err != nil {
|
||||
fmt.Println("Can't mount device: ", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
default:
|
||||
fmt.Printf("Unknown command %s\n", args[0])
|
||||
usage()
|
||||
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
4
vendor/github.com/docker/docker-ce/components/engine/contrib/docker-device-tool/device_tool_windows.go
generated
vendored
Normal file
4
vendor/github.com/docker/docker-ce/components/engine/contrib/docker-device-tool/device_tool_windows.go
generated
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
package main
|
||||
|
||||
func main() {
|
||||
}
|
111
vendor/github.com/docker/docker-ce/components/engine/contrib/docker-machine-install-bundle.sh
generated
vendored
Executable file
111
vendor/github.com/docker/docker-ce/components/engine/contrib/docker-machine-install-bundle.sh
generated
vendored
Executable file
|
@ -0,0 +1,111 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# This script installs the bundle to Docker Machine instances, for the purpose
|
||||
# of testing the latest Docker with Swarm mode enabled.
|
||||
# Do not use in production.
|
||||
#
|
||||
# Requirements (on host to run this script)
|
||||
# - bash is installed
|
||||
# - Docker Machine is installed
|
||||
# - GNU tar is installed
|
||||
#
|
||||
# Requirements (on Docker machine instances)
|
||||
# - Docker can be managed via one of `systemctl`, `service`, or `/etc/init.d/docker`
|
||||
#
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
errexit() {
|
||||
echo "$1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
BUNDLE="bundles/$(cat VERSION)"
|
||||
|
||||
bundle_files(){
|
||||
# prefer dynbinary if exists
|
||||
for f in dockerd docker-proxy; do
|
||||
if [ -d $BUNDLE/dynbinary-daemon ]; then
|
||||
echo $BUNDLE/dynbinary-daemon/$f
|
||||
else
|
||||
echo $BUNDLE/binary-daemon/$f
|
||||
fi
|
||||
done
|
||||
for f in docker-containerd docker-containerd-ctr docker-containerd-shim docker-init docker-runc; do
|
||||
echo $BUNDLE/binary-daemon/$f
|
||||
done
|
||||
if [ -d $BUNDLE/dynbinary-client ]; then
|
||||
echo $BUNDLE/dynbinary-client/docker
|
||||
else
|
||||
echo $BUNDLE/binary-client/docker
|
||||
fi
|
||||
}
|
||||
|
||||
control_docker(){
|
||||
m=$1; op=$2
|
||||
# NOTE: `docker-machine ssh $m sh -c "foo bar"` does not work
|
||||
# (but `docker-machine ssh $m sh -c "foo\ bar"` works)
|
||||
# Anyway we avoid using `sh -c` here for avoiding confusion
|
||||
cat <<EOF | docker-machine ssh $m sudo sh
|
||||
if command -v systemctl > /dev/null; then
|
||||
systemctl $op docker
|
||||
elif command -v service > /dev/null; then
|
||||
service docker $op
|
||||
elif [ -x /etc/init.d/docker ]; then
|
||||
/etc/init.d/docker $op
|
||||
else
|
||||
echo "not sure how to control the docker daemon"
|
||||
exit 1
|
||||
fi
|
||||
EOF
|
||||
}
|
||||
|
||||
detect_prefix(){
|
||||
m=$1
|
||||
script='dirname $(dirname $(which dockerd))'
|
||||
echo $script | docker-machine ssh $m sh
|
||||
}
|
||||
|
||||
install_to(){
|
||||
m=$1; shift; files=$@
|
||||
echo "$m: detecting docker"
|
||||
prefix=$(detect_prefix $m)
|
||||
echo "$m: detected docker on $prefix"
|
||||
echo "$m: stopping docker"
|
||||
control_docker $m stop
|
||||
echo "$m: installing docker"
|
||||
# NOTE: GNU tar is required because we use --transform here
|
||||
# TODO: compression (should not be default)
|
||||
tar ch --transform 's/.*\///' $files | docker-machine ssh $m sudo tar Cx $prefix/bin
|
||||
echo "$m: starting docker"
|
||||
control_docker $m start
|
||||
echo "$m: done"
|
||||
}
|
||||
|
||||
check_prereq(){
|
||||
command -v docker-machine > /dev/null || errexit "docker-machine not installed"
|
||||
( tar --version | grep GNU > /dev/null ) || errexit "GNU tar not installed"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
"install")
|
||||
shift; machines=$@
|
||||
check_prereq
|
||||
files=$(bundle_files)
|
||||
echo "Files to be installed:"
|
||||
for f in $files; do echo $f; done
|
||||
pids=()
|
||||
for m in $machines; do
|
||||
install_to $m $files &
|
||||
pids+=($!)
|
||||
done
|
||||
status=0
|
||||
for pid in ${pids[@]}; do
|
||||
wait $pid || { status=$?; echo "background process $pid failed with exit status $status"; }
|
||||
done
|
||||
exit $status
|
||||
;;
|
||||
*)
|
||||
errexit "Usage: $0 install MACHINES"
|
||||
;;
|
||||
esac
|
118
vendor/github.com/docker/docker-ce/components/engine/contrib/dockerize-disk.sh
generated
vendored
Executable file
118
vendor/github.com/docker/docker-ce/components/engine/contrib/dockerize-disk.sh
generated
vendored
Executable file
|
@ -0,0 +1,118 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
if ! command -v qemu-nbd &> /dev/null; then
|
||||
echo >&2 'error: "qemu-nbd" not found!'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
usage() {
|
||||
echo "Convert disk image to docker image"
|
||||
echo ""
|
||||
echo "usage: $0 image-name disk-image-file [ base-image ]"
|
||||
echo " ie: $0 cirros:0.3.3 cirros-0.3.3-x86_64-disk.img"
|
||||
echo " $0 ubuntu:cloud ubuntu-14.04-server-cloudimg-amd64-disk1.img ubuntu:14.04"
|
||||
}
|
||||
|
||||
if [ "$#" -lt 2 ]; then
|
||||
usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
CURDIR=$(pwd)
|
||||
|
||||
image_name="${1%:*}"
|
||||
image_tag="${1#*:}"
|
||||
if [ "$image_tag" == "$1" ]; then
|
||||
image_tag="latest"
|
||||
fi
|
||||
|
||||
disk_image_file="$2"
|
||||
docker_base_image="$3"
|
||||
|
||||
block_device=/dev/nbd0
|
||||
|
||||
builddir=$(mktemp -d)
|
||||
|
||||
cleanup() {
|
||||
umount "$builddir/disk_image" || true
|
||||
umount "$builddir/workdir" || true
|
||||
qemu-nbd -d $block_device &> /dev/null || true
|
||||
rm -rf $builddir
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
# Mount disk image
|
||||
modprobe nbd max_part=63
|
||||
qemu-nbd -rc ${block_device} -P 1 "$disk_image_file"
|
||||
mkdir "$builddir/disk_image"
|
||||
mount -o ro ${block_device} "$builddir/disk_image"
|
||||
|
||||
mkdir "$builddir/workdir"
|
||||
mkdir "$builddir/diff"
|
||||
|
||||
base_image_mounts=""
|
||||
|
||||
# Unpack base image
|
||||
if [ -n "$docker_base_image" ]; then
|
||||
mkdir -p "$builddir/base"
|
||||
docker pull "$docker_base_image"
|
||||
docker save "$docker_base_image" | tar -xC "$builddir/base"
|
||||
|
||||
image_id=$(docker inspect -f "{{.Id}}" "$docker_base_image")
|
||||
while [ -n "$image_id" ]; do
|
||||
mkdir -p "$builddir/base/$image_id/layer"
|
||||
tar -xf "$builddir/base/$image_id/layer.tar" -C "$builddir/base/$image_id/layer"
|
||||
|
||||
base_image_mounts="${base_image_mounts}:$builddir/base/$image_id/layer=ro+wh"
|
||||
image_id=$(docker inspect -f "{{.Parent}}" "$image_id")
|
||||
done
|
||||
fi
|
||||
|
||||
# Mount work directory
|
||||
mount -t aufs -o "br=$builddir/diff=rw${base_image_mounts},dio,xino=/dev/shm/aufs.xino" none "$builddir/workdir"
|
||||
|
||||
# Update files
|
||||
cd $builddir
|
||||
LC_ALL=C diff -rq disk_image workdir \
|
||||
| sed -re "s|Only in workdir(.*?): |DEL \1/|g;s|Only in disk_image(.*?): |ADD \1/|g;s|Files disk_image/(.+) and workdir/(.+) differ|UPDATE /\1|g" \
|
||||
| while read action entry; do
|
||||
case "$action" in
|
||||
ADD|UPDATE)
|
||||
cp -a "disk_image$entry" "workdir$entry"
|
||||
;;
|
||||
DEL)
|
||||
rm -rf "workdir$entry"
|
||||
;;
|
||||
*)
|
||||
echo "Error: unknown diff line: $action $entry" >&2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Pack new image
|
||||
new_image_id="$(for i in $(seq 1 32); do printf "%02x" $(($RANDOM % 256)); done)"
|
||||
mkdir -p $builddir/result/$new_image_id
|
||||
cd diff
|
||||
tar -cf $builddir/result/$new_image_id/layer.tar *
|
||||
echo "1.0" > $builddir/result/$new_image_id/VERSION
|
||||
cat > $builddir/result/$new_image_id/json <<-EOS
|
||||
{ "docker_version": "1.4.1"
|
||||
, "id": "$new_image_id"
|
||||
, "created": "$(date -u +%Y-%m-%dT%H:%M:%S.%NZ)"
|
||||
EOS
|
||||
|
||||
if [ -n "$docker_base_image" ]; then
|
||||
image_id=$(docker inspect -f "{{.Id}}" "$docker_base_image")
|
||||
echo ", \"parent\": \"$image_id\"" >> $builddir/result/$new_image_id/json
|
||||
fi
|
||||
|
||||
echo "}" >> $builddir/result/$new_image_id/json
|
||||
|
||||
echo "{\"$image_name\":{\"$image_tag\":\"$new_image_id\"}}" > $builddir/result/repositories
|
||||
|
||||
cd $builddir/result
|
||||
|
||||
# mkdir -p $CURDIR/$image_name
|
||||
# cp -r * $CURDIR/$image_name
|
||||
tar -c * | docker load
|
108
vendor/github.com/docker/docker-ce/components/engine/contrib/download-frozen-image-v1.sh
generated
vendored
Executable file
108
vendor/github.com/docker/docker-ce/components/engine/contrib/download-frozen-image-v1.sh
generated
vendored
Executable file
|
@ -0,0 +1,108 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# hello-world latest ef872312fe1b 3 months ago 910 B
|
||||
# hello-world latest ef872312fe1bbc5e05aae626791a47ee9b032efa8f3bda39cc0be7b56bfe59b9 3 months ago 910 B
|
||||
|
||||
# debian latest f6fab3b798be 10 weeks ago 85.1 MB
|
||||
# debian latest f6fab3b798be3174f45aa1eb731f8182705555f89c9026d8c1ef230cbf8301dd 10 weeks ago 85.1 MB
|
||||
|
||||
if ! command -v curl &> /dev/null; then
|
||||
echo >&2 'error: "curl" not found!'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
usage() {
|
||||
echo "usage: $0 dir image[:tag][@image-id] ..."
|
||||
echo " ie: $0 /tmp/hello-world hello-world"
|
||||
echo " $0 /tmp/debian-jessie debian:jessie"
|
||||
echo " $0 /tmp/old-hello-world hello-world@ef872312fe1bbc5e05aae626791a47ee9b032efa8f3bda39cc0be7b56bfe59b9"
|
||||
echo " $0 /tmp/old-debian debian:latest@f6fab3b798be3174f45aa1eb731f8182705555f89c9026d8c1ef230cbf8301dd"
|
||||
[ -z "$1" ] || exit "$1"
|
||||
}
|
||||
|
||||
dir="$1" # dir for building tar in
|
||||
shift || usage 1 >&2
|
||||
|
||||
[ $# -gt 0 -a "$dir" ] || usage 2 >&2
|
||||
mkdir -p "$dir"
|
||||
|
||||
# hacky workarounds for Bash 3 support (no associative arrays)
|
||||
images=()
|
||||
rm -f "$dir"/tags-*.tmp
|
||||
# repositories[busybox]='"latest": "...", "ubuntu-14.04": "..."'
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
imageTag="$1"
|
||||
shift
|
||||
image="${imageTag%%[:@]*}"
|
||||
tag="${imageTag#*:}"
|
||||
imageId="${tag##*@}"
|
||||
[ "$imageId" != "$tag" ] || imageId=
|
||||
[ "$tag" != "$imageTag" ] || tag='latest'
|
||||
tag="${tag%@*}"
|
||||
|
||||
imageFile="${image//\//_}" # "/" can't be in filenames :)
|
||||
|
||||
token="$(curl -sSL -o /dev/null -D- -H 'X-Docker-Token: true' "https://index.docker.io/v1/repositories/$image/images" | tr -d '\r' | awk -F ': *' '$1 == "X-Docker-Token" { print $2 }')"
|
||||
|
||||
if [ -z "$imageId" ]; then
|
||||
imageId="$(curl -sSL -H "Authorization: Token $token" "https://registry-1.docker.io/v1/repositories/$image/tags/$tag")"
|
||||
imageId="${imageId//\"/}"
|
||||
fi
|
||||
|
||||
ancestryJson="$(curl -sSL -H "Authorization: Token $token" "https://registry-1.docker.io/v1/images/$imageId/ancestry")"
|
||||
if [ "${ancestryJson:0:1}" != '[' ]; then
|
||||
echo >&2 "error: /v1/images/$imageId/ancestry returned something unexpected:"
|
||||
echo >&2 " $ancestryJson"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
IFS=','
|
||||
ancestry=( ${ancestryJson//[\[\] \"]/} )
|
||||
unset IFS
|
||||
|
||||
if [ -s "$dir/tags-$imageFile.tmp" ]; then
|
||||
echo -n ', ' >> "$dir/tags-$imageFile.tmp"
|
||||
else
|
||||
images=( "${images[@]}" "$image" )
|
||||
fi
|
||||
echo -n '"'"$tag"'": "'"$imageId"'"' >> "$dir/tags-$imageFile.tmp"
|
||||
|
||||
echo "Downloading '$imageTag' (${#ancestry[@]} layers)..."
|
||||
for imageId in "${ancestry[@]}"; do
|
||||
mkdir -p "$dir/$imageId"
|
||||
echo '1.0' > "$dir/$imageId/VERSION"
|
||||
|
||||
curl -sSL -H "Authorization: Token $token" "https://registry-1.docker.io/v1/images/$imageId/json" -o "$dir/$imageId/json"
|
||||
|
||||
# TODO figure out why "-C -" doesn't work here
|
||||
# "curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume."
|
||||
# "HTTP/1.1 416 Requested Range Not Satisfiable"
|
||||
if [ -f "$dir/$imageId/layer.tar" ]; then
|
||||
# TODO hackpatch for no -C support :'(
|
||||
echo "skipping existing ${imageId:0:12}"
|
||||
continue
|
||||
fi
|
||||
curl -SL --progress -H "Authorization: Token $token" "https://registry-1.docker.io/v1/images/$imageId/layer" -o "$dir/$imageId/layer.tar" # -C -
|
||||
done
|
||||
echo
|
||||
done
|
||||
|
||||
echo -n '{' > "$dir/repositories"
|
||||
firstImage=1
|
||||
for image in "${images[@]}"; do
|
||||
imageFile="${image//\//_}" # "/" can't be in filenames :)
|
||||
|
||||
[ "$firstImage" ] || echo -n ',' >> "$dir/repositories"
|
||||
firstImage=
|
||||
echo -n $'\n\t' >> "$dir/repositories"
|
||||
echo -n '"'"$image"'": { '"$(cat "$dir/tags-$imageFile.tmp")"' }' >> "$dir/repositories"
|
||||
done
|
||||
echo -n $'\n}\n' >> "$dir/repositories"
|
||||
|
||||
rm -f "$dir"/tags-*.tmp
|
||||
|
||||
echo "Download of images into '$dir' complete."
|
||||
echo "Use something like the following to load the result into a Docker daemon:"
|
||||
echo " tar -cC '$dir' . | docker load"
|
345
vendor/github.com/docker/docker-ce/components/engine/contrib/download-frozen-image-v2.sh
generated
vendored
Executable file
345
vendor/github.com/docker/docker-ce/components/engine/contrib/download-frozen-image-v2.sh
generated
vendored
Executable file
|
@ -0,0 +1,345 @@
|
|||
#!/usr/bin/env bash
|
||||
set -eo pipefail
|
||||
|
||||
# hello-world latest ef872312fe1b 3 months ago 910 B
|
||||
# hello-world latest ef872312fe1bbc5e05aae626791a47ee9b032efa8f3bda39cc0be7b56bfe59b9 3 months ago 910 B
|
||||
|
||||
# debian latest f6fab3b798be 10 weeks ago 85.1 MB
|
||||
# debian latest f6fab3b798be3174f45aa1eb731f8182705555f89c9026d8c1ef230cbf8301dd 10 weeks ago 85.1 MB
|
||||
if ! command -v curl &> /dev/null; then
|
||||
echo >&2 'error: "curl" not found!'
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v jq &> /dev/null; then
|
||||
echo >&2 'error: "jq" not found!'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
usage() {
|
||||
echo "usage: $0 dir image[:tag][@digest] ..."
|
||||
echo " $0 /tmp/old-hello-world hello-world:latest@sha256:8be990ef2aeb16dbcb9271ddfe2610fa6658d13f6dfb8bc72074cc1ca36966a7"
|
||||
[ -z "$1" ] || exit "$1"
|
||||
}
|
||||
|
||||
dir="$1" # dir for building tar in
|
||||
shift || usage 1 >&2
|
||||
|
||||
[ $# -gt 0 -a "$dir" ] || usage 2 >&2
|
||||
mkdir -p "$dir"
|
||||
|
||||
# hacky workarounds for Bash 3 support (no associative arrays)
|
||||
images=()
|
||||
rm -f "$dir"/tags-*.tmp
|
||||
manifestJsonEntries=()
|
||||
doNotGenerateManifestJson=
|
||||
# repositories[busybox]='"latest": "...", "ubuntu-14.04": "..."'
|
||||
|
||||
# bash v4 on Windows CI requires CRLF separator
|
||||
newlineIFS=$'\n'
|
||||
if [ "$(go env GOHOSTOS)" = 'windows' ]; then
|
||||
major=$(echo ${BASH_VERSION%%[^0.9]} | cut -d. -f1)
|
||||
if [ "$major" -ge 4 ]; then
|
||||
newlineIFS=$'\r\n'
|
||||
fi
|
||||
fi
|
||||
|
||||
registryBase='https://registry-1.docker.io'
|
||||
authBase='https://auth.docker.io'
|
||||
authService='registry.docker.io'
|
||||
|
||||
# https://github.com/moby/moby/issues/33700
|
||||
fetch_blob() {
|
||||
local token="$1"; shift
|
||||
local image="$1"; shift
|
||||
local digest="$1"; shift
|
||||
local targetFile="$1"; shift
|
||||
local curlArgs=( "$@" )
|
||||
|
||||
local curlHeaders="$(
|
||||
curl -S "${curlArgs[@]}" \
|
||||
-H "Authorization: Bearer $token" \
|
||||
"$registryBase/v2/$image/blobs/$digest" \
|
||||
-o "$targetFile" \
|
||||
-D-
|
||||
)"
|
||||
curlHeaders="$(echo "$curlHeaders" | tr -d '\r')"
|
||||
if grep -qE "^HTTP/[0-9].[0-9] 3" <<<"$curlHeaders"; then
|
||||
rm -f "$targetFile"
|
||||
|
||||
local blobRedirect="$(echo "$curlHeaders" | awk -F ': ' 'tolower($1) == "location" { print $2; exit }')"
|
||||
if [ -z "$blobRedirect" ]; then
|
||||
echo >&2 "error: failed fetching '$image' blob '$digest'"
|
||||
echo "$curlHeaders" | head -1 >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
curl -fSL "${curlArgs[@]}" \
|
||||
"$blobRedirect" \
|
||||
-o "$targetFile"
|
||||
fi
|
||||
}
|
||||
|
||||
# handle 'application/vnd.docker.distribution.manifest.v2+json' manifest
|
||||
handle_single_manifest_v2() {
|
||||
local manifestJson="$1"; shift
|
||||
|
||||
local configDigest="$(echo "$manifestJson" | jq --raw-output '.config.digest')"
|
||||
local imageId="${configDigest#*:}" # strip off "sha256:"
|
||||
|
||||
local configFile="$imageId.json"
|
||||
fetch_blob "$token" "$image" "$configDigest" "$dir/$configFile" -s
|
||||
|
||||
local layersFs="$(echo "$manifestJson" | jq --raw-output --compact-output '.layers[]')"
|
||||
local IFS="$newlineIFS"
|
||||
local layers=( $layersFs )
|
||||
unset IFS
|
||||
|
||||
echo "Downloading '$imageIdentifier' (${#layers[@]} layers)..."
|
||||
local layerId=
|
||||
local layerFiles=()
|
||||
for i in "${!layers[@]}"; do
|
||||
local layerMeta="${layers[$i]}"
|
||||
|
||||
local layerMediaType="$(echo "$layerMeta" | jq --raw-output '.mediaType')"
|
||||
local layerDigest="$(echo "$layerMeta" | jq --raw-output '.digest')"
|
||||
|
||||
# save the previous layer's ID
|
||||
local parentId="$layerId"
|
||||
# create a new fake layer ID based on this layer's digest and the previous layer's fake ID
|
||||
layerId="$(echo "$parentId"$'\n'"$layerDigest" | sha256sum | cut -d' ' -f1)"
|
||||
# this accounts for the possibility that an image contains the same layer twice (and thus has a duplicate digest value)
|
||||
|
||||
mkdir -p "$dir/$layerId"
|
||||
echo '1.0' > "$dir/$layerId/VERSION"
|
||||
|
||||
if [ ! -s "$dir/$layerId/json" ]; then
|
||||
local parentJson="$(printf ', parent: "%s"' "$parentId")"
|
||||
local addJson="$(printf '{ id: "%s"%s }' "$layerId" "${parentId:+$parentJson}")"
|
||||
# this starter JSON is taken directly from Docker's own "docker save" output for unimportant layers
|
||||
jq "$addJson + ." > "$dir/$layerId/json" <<-'EOJSON'
|
||||
{
|
||||
"created": "0001-01-01T00:00:00Z",
|
||||
"container_config": {
|
||||
"Hostname": "",
|
||||
"Domainname": "",
|
||||
"User": "",
|
||||
"AttachStdin": false,
|
||||
"AttachStdout": false,
|
||||
"AttachStderr": false,
|
||||
"Tty": false,
|
||||
"OpenStdin": false,
|
||||
"StdinOnce": false,
|
||||
"Env": null,
|
||||
"Cmd": null,
|
||||
"Image": "",
|
||||
"Volumes": null,
|
||||
"WorkingDir": "",
|
||||
"Entrypoint": null,
|
||||
"OnBuild": null,
|
||||
"Labels": null
|
||||
}
|
||||
}
|
||||
EOJSON
|
||||
fi
|
||||
|
||||
case "$layerMediaType" in
|
||||
application/vnd.docker.image.rootfs.diff.tar.gzip)
|
||||
local layerTar="$layerId/layer.tar"
|
||||
layerFiles=( "${layerFiles[@]}" "$layerTar" )
|
||||
# TODO figure out why "-C -" doesn't work here
|
||||
# "curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume."
|
||||
# "HTTP/1.1 416 Requested Range Not Satisfiable"
|
||||
if [ -f "$dir/$layerTar" ]; then
|
||||
# TODO hackpatch for no -C support :'(
|
||||
echo "skipping existing ${layerId:0:12}"
|
||||
continue
|
||||
fi
|
||||
local token="$(curl -fsSL "$authBase/token?service=$authService&scope=repository:$image:pull" | jq --raw-output '.token')"
|
||||
fetch_blob "$token" "$image" "$layerDigest" "$dir/$layerTar" --progress
|
||||
;;
|
||||
|
||||
*)
|
||||
echo >&2 "error: unknown layer mediaType ($imageIdentifier, $layerDigest): '$layerMediaType'"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# change "$imageId" to be the ID of the last layer we added (needed for old-style "repositories" file which is created later -- specifically for older Docker daemons)
|
||||
imageId="$layerId"
|
||||
|
||||
# munge the top layer image manifest to have the appropriate image configuration for older daemons
|
||||
local imageOldConfig="$(jq --raw-output --compact-output '{ id: .id } + if .parent then { parent: .parent } else {} end' "$dir/$imageId/json")"
|
||||
jq --raw-output "$imageOldConfig + del(.history, .rootfs)" "$dir/$configFile" > "$dir/$imageId/json"
|
||||
|
||||
local manifestJsonEntry="$(
|
||||
echo '{}' | jq --raw-output '. + {
|
||||
Config: "'"$configFile"'",
|
||||
RepoTags: ["'"${image#library\/}:$tag"'"],
|
||||
Layers: '"$(echo '[]' | jq --raw-output ".$(for layerFile in "${layerFiles[@]}"; do echo " + [ \"$layerFile\" ]"; done)")"'
|
||||
}'
|
||||
)"
|
||||
manifestJsonEntries=( "${manifestJsonEntries[@]}" "$manifestJsonEntry" )
|
||||
}
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
imageTag="$1"
|
||||
shift
|
||||
image="${imageTag%%[:@]*}"
|
||||
imageTag="${imageTag#*:}"
|
||||
digest="${imageTag##*@}"
|
||||
tag="${imageTag%%@*}"
|
||||
|
||||
# add prefix library if passed official image
|
||||
if [[ "$image" != *"/"* ]]; then
|
||||
image="library/$image"
|
||||
fi
|
||||
|
||||
imageFile="${image//\//_}" # "/" can't be in filenames :)
|
||||
|
||||
token="$(curl -fsSL "$authBase/token?service=$authService&scope=repository:$image:pull" | jq --raw-output '.token')"
|
||||
|
||||
manifestJson="$(
|
||||
curl -fsSL \
|
||||
-H "Authorization: Bearer $token" \
|
||||
-H 'Accept: application/vnd.docker.distribution.manifest.v2+json' \
|
||||
-H 'Accept: application/vnd.docker.distribution.manifest.list.v2+json' \
|
||||
-H 'Accept: application/vnd.docker.distribution.manifest.v1+json' \
|
||||
"$registryBase/v2/$image/manifests/$digest"
|
||||
)"
|
||||
if [ "${manifestJson:0:1}" != '{' ]; then
|
||||
echo >&2 "error: /v2/$image/manifests/$digest returned something unexpected:"
|
||||
echo >&2 " $manifestJson"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
imageIdentifier="$image:$tag@$digest"
|
||||
|
||||
schemaVersion="$(echo "$manifestJson" | jq --raw-output '.schemaVersion')"
|
||||
case "$schemaVersion" in
|
||||
2)
|
||||
mediaType="$(echo "$manifestJson" | jq --raw-output '.mediaType')"
|
||||
|
||||
case "$mediaType" in
|
||||
application/vnd.docker.distribution.manifest.v2+json)
|
||||
handle_single_manifest_v2 "$manifestJson"
|
||||
;;
|
||||
application/vnd.docker.distribution.manifest.list.v2+json)
|
||||
layersFs="$(echo "$manifestJson" | jq --raw-output --compact-output '.manifests[]')"
|
||||
IFS="$newlineIFS"
|
||||
layers=( $layersFs )
|
||||
unset IFS
|
||||
|
||||
found=""
|
||||
# parse first level multi-arch manifest
|
||||
for i in "${!layers[@]}"; do
|
||||
layerMeta="${layers[$i]}"
|
||||
maniArch="$(echo "$layerMeta" | jq --raw-output '.platform.architecture')"
|
||||
if [ "$maniArch" = "$(go env GOARCH)" ]; then
|
||||
digest="$(echo "$layerMeta" | jq --raw-output '.digest')"
|
||||
# get second level single manifest
|
||||
submanifestJson="$(
|
||||
curl -fsSL \
|
||||
-H "Authorization: Bearer $token" \
|
||||
-H 'Accept: application/vnd.docker.distribution.manifest.v2+json' \
|
||||
-H 'Accept: application/vnd.docker.distribution.manifest.list.v2+json' \
|
||||
-H 'Accept: application/vnd.docker.distribution.manifest.v1+json' \
|
||||
"$registryBase/v2/$image/manifests/$digest"
|
||||
)"
|
||||
handle_single_manifest_v2 "$submanifestJson"
|
||||
found="found"
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ -z "$found" ]; then
|
||||
echo >&2 "error: manifest for $maniArch is not found"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo >&2 "error: unknown manifest mediaType ($imageIdentifier): '$mediaType'"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
1)
|
||||
if [ -z "$doNotGenerateManifestJson" ]; then
|
||||
echo >&2 "warning: '$imageIdentifier' uses schemaVersion '$schemaVersion'"
|
||||
echo >&2 " this script cannot (currently) recreate the 'image config' to put in a 'manifest.json' (thus any schemaVersion 2+ images will be imported in the old way, and their 'docker history' will suffer)"
|
||||
echo >&2
|
||||
doNotGenerateManifestJson=1
|
||||
fi
|
||||
|
||||
layersFs="$(echo "$manifestJson" | jq --raw-output '.fsLayers | .[] | .blobSum')"
|
||||
IFS="$newlineIFS"
|
||||
layers=( $layersFs )
|
||||
unset IFS
|
||||
|
||||
history="$(echo "$manifestJson" | jq '.history | [.[] | .v1Compatibility]')"
|
||||
imageId="$(echo "$history" | jq --raw-output '.[0]' | jq --raw-output '.id')"
|
||||
|
||||
echo "Downloading '$imageIdentifier' (${#layers[@]} layers)..."
|
||||
for i in "${!layers[@]}"; do
|
||||
imageJson="$(echo "$history" | jq --raw-output ".[${i}]")"
|
||||
layerId="$(echo "$imageJson" | jq --raw-output '.id')"
|
||||
imageLayer="${layers[$i]}"
|
||||
|
||||
mkdir -p "$dir/$layerId"
|
||||
echo '1.0' > "$dir/$layerId/VERSION"
|
||||
|
||||
echo "$imageJson" > "$dir/$layerId/json"
|
||||
|
||||
# TODO figure out why "-C -" doesn't work here
|
||||
# "curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume."
|
||||
# "HTTP/1.1 416 Requested Range Not Satisfiable"
|
||||
if [ -f "$dir/$layerId/layer.tar" ]; then
|
||||
# TODO hackpatch for no -C support :'(
|
||||
echo "skipping existing ${layerId:0:12}"
|
||||
continue
|
||||
fi
|
||||
token="$(curl -fsSL "$authBase/token?service=$authService&scope=repository:$image:pull" | jq --raw-output '.token')"
|
||||
fetch_blob "$token" "$image" "$imageLayer" "$dir/$layerId/layer.tar" --progress
|
||||
done
|
||||
;;
|
||||
|
||||
*)
|
||||
echo >&2 "error: unknown manifest schemaVersion ($imageIdentifier): '$schemaVersion'"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo
|
||||
|
||||
if [ -s "$dir/tags-$imageFile.tmp" ]; then
|
||||
echo -n ', ' >> "$dir/tags-$imageFile.tmp"
|
||||
else
|
||||
images=( "${images[@]}" "$image" )
|
||||
fi
|
||||
echo -n '"'"$tag"'": "'"$imageId"'"' >> "$dir/tags-$imageFile.tmp"
|
||||
done
|
||||
|
||||
echo -n '{' > "$dir/repositories"
|
||||
firstImage=1
|
||||
for image in "${images[@]}"; do
|
||||
imageFile="${image//\//_}" # "/" can't be in filenames :)
|
||||
image="${image#library\/}"
|
||||
|
||||
[ "$firstImage" ] || echo -n ',' >> "$dir/repositories"
|
||||
firstImage=
|
||||
echo -n $'\n\t' >> "$dir/repositories"
|
||||
echo -n '"'"$image"'": { '"$(cat "$dir/tags-$imageFile.tmp")"' }' >> "$dir/repositories"
|
||||
done
|
||||
echo -n $'\n}\n' >> "$dir/repositories"
|
||||
|
||||
rm -f "$dir"/tags-*.tmp
|
||||
|
||||
if [ -z "$doNotGenerateManifestJson" ] && [ "${#manifestJsonEntries[@]}" -gt 0 ]; then
|
||||
echo '[]' | jq --raw-output ".$(for entry in "${manifestJsonEntries[@]}"; do echo " + [ $entry ]"; done)" > "$dir/manifest.json"
|
||||
else
|
||||
rm -f "$dir/manifest.json"
|
||||
fi
|
||||
|
||||
echo "Download of images into '$dir' complete."
|
||||
echo "Use something like the following to load the result into a Docker daemon:"
|
||||
echo " tar -cC '$dir' . | docker load"
|
13
vendor/github.com/docker/docker-ce/components/engine/contrib/editorconfig
generated
vendored
Normal file
13
vendor/github.com/docker/docker-ce/components/engine/contrib/editorconfig
generated
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
indent_size = 2
|
||||
indent_style = space
|
148
vendor/github.com/docker/docker-ce/components/engine/contrib/gitdm/aliases
generated
vendored
Normal file
148
vendor/github.com/docker/docker-ce/components/engine/contrib/gitdm/aliases
generated
vendored
Normal file
|
@ -0,0 +1,148 @@
|
|||
Danny.Yates@mailonline.co.uk danny@codeaholics.org
|
||||
KenCochrane@gmail.com kencochrane@gmail.com
|
||||
LÉVEIL thomasleveil@gmail.com
|
||||
Vincent.Bernat@exoscale.ch bernat@luffy.cx
|
||||
acidburn@docker.com jess@docker.com
|
||||
admin@jtlebi.fr jt@yadutaf.fr
|
||||
ahmetalpbalkan@gmail.com ahmetb@microsoft.com
|
||||
aj@gandi.net aj@gandi.net
|
||||
albers@users.noreply.github.com github@albersweb.de
|
||||
alexander.larsson@gmail.com alexl@redhat.com
|
||||
amurdaca@redhat.com antonio.murdaca@gmail.com
|
||||
amy@gandi.net aj@gandi.net
|
||||
andrew.weiss@microsoft.com andrew.weiss@outlook.com
|
||||
angt@users.noreply.github.com adrien@gallouet.fr
|
||||
ankushagarwal@users.noreply.github.com ankushagarwal11@gmail.com
|
||||
anonymouse2048@gmail.com lheckemann@twig-world.com
|
||||
anusha@docker.com anusha.ragunathan@docker.com
|
||||
asarai@suse.com asarai@suse.de
|
||||
avi.miller@gmail.com avi.miller@oracle.com
|
||||
bernat@luffy.cx Vincent.Bernat@exoscale.ch
|
||||
bgoff@cpuguy83-mbp.home cpuguy83@gmail.com
|
||||
brandon@ifup.co brandon@ifup.org
|
||||
brent@docker.com brent.salisbury@docker.com
|
||||
charmes.guillaume@gmail.com guillaume.charmes@docker.com
|
||||
chenchun.feed@gmail.com ramichen@tencent.com
|
||||
chooper@plumata.com charles.hooper@dotcloud.com
|
||||
crosby.michael@gmail.com michael@docker.com
|
||||
crosbymichael@gmail.com michael@docker.com
|
||||
cyphar@cyphar.com asarai@suse.de
|
||||
daehyeok@daehyeok-ui-MacBook-Air.local daehyeok@gmail.com
|
||||
daehyeok@daehyeokui-MacBook-Air.local daehyeok@gmail.com
|
||||
daniel.norberg@gmail.com dano@spotify.com
|
||||
daniel@dotcloud.com daniel.mizyrycki@dotcloud.com
|
||||
darren@rancher.com darren.s.shepherd@gmail.com
|
||||
dave@dtucker.co.uk dt@docker.com
|
||||
dev@vvieux.com victor.vieux@docker.com
|
||||
dgasienica@zynga.com daniel@gasienica.ch
|
||||
dnephin@gmail.com dnephin@docker.com
|
||||
dominikh@fork-bomb.org dominik@honnef.co
|
||||
dqminh89@gmail.com dqminh@cloudflare.com
|
||||
dsxiao@dataman-inc.com dxiao@redhat.com
|
||||
duglin@users.noreply.github.com dug@us.ibm.com
|
||||
eric.hanchrow@gmail.com ehanchrow@ine.com
|
||||
erik+github@hollensbe.org github@hollensbe.org
|
||||
estesp@gmail.com estesp@linux.vnet.ibm.com
|
||||
ewindisch@docker.com eric@windisch.us
|
||||
f.joffrey@gmail.com joffrey@docker.com
|
||||
fkautz@alumni.cmu.edu fkautz@redhat.com
|
||||
frank.rosquin@gmail.com frank.rosquin+github@gmail.com
|
||||
gh@mattyw.net mattyw@me.com
|
||||
git@julienbordellier.com julienbordellier@gmail.com
|
||||
github@metaliveblog.com github@developersupport.net
|
||||
github@srid.name sridharr@activestate.com
|
||||
guillaume.charmes@dotcloud.com guillaume.charmes@docker.com
|
||||
guillaume@charmes.net guillaume.charmes@docker.com
|
||||
guillaume@docker.com guillaume.charmes@docker.com
|
||||
guillaume@dotcloud.com guillaume.charmes@docker.com
|
||||
haoshuwei24@gmail.com haosw@cn.ibm.com
|
||||
hollie.teal@docker.com hollie@docker.com
|
||||
hollietealok@users.noreply.github.com hollie@docker.com
|
||||
hsinko@users.noreply.github.com 21551195@zju.edu.cn
|
||||
iamironbob@gmail.com altsysrq@gmail.com
|
||||
icecrime@gmail.com arnaud.porterie@docker.com
|
||||
jatzen@gmail.com jacob@jacobatzen.dk
|
||||
jeff@allingeek.com jeff.nickoloff@gmail.com
|
||||
jefferya@programmerq.net jeff@docker.com
|
||||
jerome.petazzoni@dotcloud.com jerome.petazzoni@dotcloud.com
|
||||
jfrazelle@users.noreply.github.com jess@docker.com
|
||||
jhoward@microsoft.com John.Howard@microsoft.com
|
||||
jlhawn@berkeley.edu josh.hawn@docker.com
|
||||
joffrey@dotcloud.com joffrey@docker.com
|
||||
john.howard@microsoft.com John.Howard@microsoft.com
|
||||
jp@enix.org jerome.petazzoni@dotcloud.com
|
||||
justin.cormack@unikernel.com justin.cormack@docker.com
|
||||
justin.simonelis@PTS-JSIMON2.toronto.exclamation.com justin.p.simonelis@gmail.com
|
||||
justin@specialbusservice.com justin.cormack@docker.com
|
||||
katsuta_soshi@cyberagent.co.jp soshi.katsuta@gmail.com
|
||||
kuehnle@online.de git.nivoc@neverbox.com
|
||||
kwk@users.noreply.github.com konrad.wilhelm.kleine@gmail.com
|
||||
leijitang@gmail.com leijitang@huawei.com
|
||||
liubin0329@gmail.com liubin0329@users.noreply.github.com
|
||||
lk4d4math@gmail.com lk4d4@docker.com
|
||||
louis@dotcloud.com kalessin@kalessin.fr
|
||||
lsm5@redhat.com lsm5@fedoraproject.org
|
||||
lyndaoleary@hotmail.com lyndaoleary29@gmail.com
|
||||
madhu@socketplane.io madhu@docker.com
|
||||
martins@noironetworks.com aanm90@gmail.com
|
||||
mary@docker.com mary.anthony@docker.com
|
||||
mastahyeti@users.noreply.github.com mastahyeti@gmail.com
|
||||
maztaim@users.noreply.github.com taim@bosboot.org
|
||||
me@runcom.ninja antonio.murdaca@gmail.com
|
||||
mheon@mheonlaptop.redhat.com mheon@redhat.com
|
||||
michael@crosbymichael.com michael@docker.com
|
||||
mohitsoni1989@gmail.com mosoni@ebay.com
|
||||
moxieandmore@gmail.com mary.anthony@docker.com
|
||||
moyses.furtado@wplex.com.br moysesb@gmail.com
|
||||
msabramo@gmail.com marc@marc-abramowitz.com
|
||||
mzdaniel@glidelink.net daniel.mizyrycki@dotcloud.com
|
||||
nathan.leclaire@gmail.com nathan.leclaire@docker.com
|
||||
nathanleclaire@gmail.com nathan.leclaire@docker.com
|
||||
ostezer@users.noreply.github.com ostezer@gmail.com
|
||||
peter@scraperwiki.com p@pwaller.net
|
||||
princess@docker.com jess@docker.com
|
||||
proppy@aminche.com proppy@google.com
|
||||
qhuang@10.0.2.15 h.huangqiang@huawei.com
|
||||
resouer@gmail.com resouer@163.com
|
||||
roberto_hashioka@hotmail.com roberto.hashioka@docker.com
|
||||
root@vagrant-ubuntu-12.10.vagrantup.com daniel.mizyrycki@dotcloud.com
|
||||
runcom@linux.com antonio.murdaca@gmail.com
|
||||
runcom@redhat.com antonio.murdaca@gmail.com
|
||||
runcom@users.noreply.github.com antonio.murdaca@gmail.com
|
||||
s@docker.com solomon@docker.com
|
||||
shawnlandden@gmail.com shawn@churchofgit.com
|
||||
singh.gurjeet@gmail.com gurjeet@singh.im
|
||||
sjoerd@byte.nl sjoerd-github@linuxonly.nl
|
||||
smahajan@redhat.com shishir.mahajan@redhat.com
|
||||
solomon.hykes@dotcloud.com solomon@docker.com
|
||||
solomon@dotcloud.com solomon@docker.com
|
||||
stefanb@us.ibm.com stefanb@linux.vnet.ibm.com
|
||||
stevvooe@users.noreply.github.com stephen.day@docker.com
|
||||
superbaloo+registrations.github@superbaloo.net baloo@gandi.net
|
||||
tangicolin@gmail.com tangicolin@gmail.com
|
||||
thaJeztah@users.noreply.github.com github@gone.nl
|
||||
thatcher@dotcloud.com thatcher@docker.com
|
||||
thatcher@gmx.net thatcher@docker.com
|
||||
tibor@docker.com teabee89@gmail.com
|
||||
tiborvass@users.noreply.github.com teabee89@gmail.com
|
||||
timruffles@googlemail.com oi@truffles.me.uk
|
||||
tintypemolly@Ohui-MacBook-Pro.local tintypemolly@gmail.com
|
||||
tj@init.me tejesh.mehta@gmail.com
|
||||
tristan.carel@gmail.com tristan@cogniteev.com
|
||||
unclejack@users.noreply.github.com cristian.staretu@gmail.com
|
||||
unclejacksons@gmail.com cristian.staretu@gmail.com
|
||||
vbatts@hashbangbash.com vbatts@redhat.com
|
||||
victor.vieux@dotcloud.com victor.vieux@docker.com
|
||||
victor@docker.com victor.vieux@docker.com
|
||||
victor@dotcloud.com victor.vieux@docker.com
|
||||
victorvieux@gmail.com victor.vieux@docker.com
|
||||
vieux@docker.com victor.vieux@docker.com
|
||||
vincent+github@demeester.fr vincent@sbr.pm
|
||||
vincent@bernat.im bernat@luffy.cx
|
||||
vojnovski@gmail.com viktor.vojnovski@amadeus.com
|
||||
whoshuu@gmail.com huu@prismskylabs.com
|
||||
xiaods@gmail.com dxiao@redhat.com
|
||||
xlgao@zju.edu.cn xlgao@zju.edu.cn
|
||||
yestin.sun@polyera.com sunyi0804@gmail.com
|
||||
yuchangchun1@huawei.com yuchangchun1@huawei.com
|
||||
zjaffee@us.ibm.com zij@case.edu
|
47
vendor/github.com/docker/docker-ce/components/engine/contrib/gitdm/domain-map
generated
vendored
Normal file
47
vendor/github.com/docker/docker-ce/components/engine/contrib/gitdm/domain-map
generated
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
#
|
||||
# Docker
|
||||
#
|
||||
|
||||
docker.com Docker
|
||||
dotcloud.com Docker
|
||||
|
||||
aluzzardi@gmail.com Docker
|
||||
cpuguy83@gmail.com Docker
|
||||
derek@mcgstyle.net Docker
|
||||
github@gone.nl Docker
|
||||
kencochrane@gmail.com Docker
|
||||
mickael.laventure@gmail.com Docker
|
||||
sam.alba@gmail.com Docker
|
||||
svendowideit@fosiki.com Docker
|
||||
svendowideit@home.org.au Docker
|
||||
tonistiigi@gmail.com Docker
|
||||
|
||||
cristian.staretu@gmail.com Docker < 2015-01-01
|
||||
cristian.staretu@gmail.com Cisco
|
||||
|
||||
github@hollensbe.org Docker < 2015-01-01
|
||||
github@hollensbe.org Cisco
|
||||
|
||||
david.calavera@gmail.com Docker < 2016-04-01
|
||||
david.calavera@gmail.com (Unknown)
|
||||
|
||||
madhu@socketplane.io Docker
|
||||
ejhazlett@gmail.com Docker
|
||||
ben@firshman.co.uk Docker
|
||||
|
||||
vincent@sbr.pm (Unknown) < 2016-10-24
|
||||
vincent@sbr.pm Docker
|
||||
|
||||
#
|
||||
# Others
|
||||
#
|
||||
|
||||
cisco.com Cisco
|
||||
google.com Google
|
||||
ibm.com IBM
|
||||
huawei.com Huawei
|
||||
microsoft.com Microsoft
|
||||
|
||||
redhat.com Red Hat
|
||||
mrunalp@gmail.com Red Hat
|
||||
antonio.murdaca@gmail.com Red Hat
|
16
vendor/github.com/docker/docker-ce/components/engine/contrib/gitdm/generate_aliases.sh
generated
vendored
Executable file
16
vendor/github.com/docker/docker-ce/components/engine/contrib/gitdm/generate_aliases.sh
generated
vendored
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
#
|
||||
# This script generates a gitdm compatible email aliases file from a git
|
||||
# formatted .mailmap file.
|
||||
#
|
||||
# Usage:
|
||||
# $> ./generate_aliases <mailmap_file> > aliases
|
||||
#
|
||||
|
||||
cat $1 | \
|
||||
grep -v '^#' | \
|
||||
sed 's/^[^<]*<\([^>]*\)>/\1/' | \
|
||||
grep '<.*>' | sed -e 's/[<>]/ /g' | \
|
||||
awk '{if ($3 != "") { print $3" "$1 } else {print $2" "$1}}' | \
|
||||
sort | uniq
|
17
vendor/github.com/docker/docker-ce/components/engine/contrib/gitdm/gitdm.config
generated
vendored
Normal file
17
vendor/github.com/docker/docker-ce/components/engine/contrib/gitdm/gitdm.config
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# EmailAliases lets us cope with developers who use more
|
||||
# than one address.
|
||||
#
|
||||
EmailAliases aliases
|
||||
|
||||
#
|
||||
# EmailMap does the main work of mapping addresses onto
|
||||
# employers.
|
||||
#
|
||||
EmailMap domain-map
|
||||
|
||||
#
|
||||
# Use GroupMap to map a file full of addresses to the
|
||||
# same employer
|
||||
#
|
||||
# GroupMap company-Docker Docker
|
4
vendor/github.com/docker/docker-ce/components/engine/contrib/httpserver/Dockerfile
generated
vendored
Normal file
4
vendor/github.com/docker/docker-ce/components/engine/contrib/httpserver/Dockerfile
generated
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
FROM busybox
|
||||
EXPOSE 80/tcp
|
||||
COPY httpserver .
|
||||
CMD ["./httpserver"]
|
12
vendor/github.com/docker/docker-ce/components/engine/contrib/httpserver/server.go
generated
vendored
Normal file
12
vendor/github.com/docker/docker-ce/components/engine/contrib/httpserver/server.go
generated
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fs := http.FileServer(http.Dir("/static"))
|
||||
http.Handle("/", fs)
|
||||
log.Panic(http.ListenAndServe(":80", nil))
|
||||
}
|
23
vendor/github.com/docker/docker-ce/components/engine/contrib/init/openrc/docker.confd
generated
vendored
Normal file
23
vendor/github.com/docker/docker-ce/components/engine/contrib/init/openrc/docker.confd
generated
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
# /etc/conf.d/docker: config file for /etc/init.d/docker
|
||||
|
||||
# where the docker daemon output gets piped
|
||||
# this contains both stdout and stderr. If you need to separate them,
|
||||
# see the settings below
|
||||
#DOCKER_LOGFILE="/var/log/docker.log"
|
||||
|
||||
# where the docker daemon stdout gets piped
|
||||
# if this is not set, DOCKER_LOGFILE is used
|
||||
#DOCKER_OUTFILE="/var/log/docker-out.log"
|
||||
|
||||
# where the docker daemon stderr gets piped
|
||||
# if this is not set, DOCKER_LOGFILE is used
|
||||
#DOCKER_ERRFILE="/var/log/docker-err.log"
|
||||
|
||||
# where docker's pid get stored
|
||||
#DOCKER_PIDFILE="/run/docker.pid"
|
||||
|
||||
# where the docker daemon itself is run from
|
||||
#DOCKERD_BINARY="/usr/bin/dockerd"
|
||||
|
||||
# any other random options you want to pass to docker
|
||||
DOCKER_OPTS=""
|
24
vendor/github.com/docker/docker-ce/components/engine/contrib/init/openrc/docker.initd
generated
vendored
Normal file
24
vendor/github.com/docker/docker-ce/components/engine/contrib/init/openrc/docker.initd
generated
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2013 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
command="${DOCKERD_BINARY:-/usr/bin/dockerd}"
|
||||
pidfile="${DOCKER_PIDFILE:-/run/${RC_SVCNAME}.pid}"
|
||||
command_args="-p \"${pidfile}\" ${DOCKER_OPTS}"
|
||||
DOCKER_LOGFILE="${DOCKER_LOGFILE:-/var/log/${RC_SVCNAME}.log}"
|
||||
DOCKER_ERRFILE="${DOCKER_ERRFILE:-${DOCKER_LOGFILE}}"
|
||||
DOCKER_OUTFILE="${DOCKER_OUTFILE:-${DOCKER_LOGFILE}}"
|
||||
start_stop_daemon_args="--background \
|
||||
--stderr \"${DOCKER_ERRFILE}\" --stdout \"${DOCKER_OUTFILE}\""
|
||||
|
||||
start_pre() {
|
||||
checkpath -f -m 0644 -o root:docker "$DOCKER_LOGFILE"
|
||||
|
||||
ulimit -n 1048576
|
||||
|
||||
# Having non-zero limits causes performance problems due to accounting overhead
|
||||
# in the kernel. We recommend using cgroups to do container-local accounting.
|
||||
ulimit -u unlimited
|
||||
|
||||
return 0
|
||||
}
|
3
vendor/github.com/docker/docker-ce/components/engine/contrib/init/systemd/REVIEWERS
generated
vendored
Normal file
3
vendor/github.com/docker/docker-ce/components/engine/contrib/init/systemd/REVIEWERS
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
Lokesh Mandvekar <lsm5@fedoraproject.org> (@lsm5)
|
||||
Brandon Philips <brandon.philips@coreos.com> (@philips)
|
||||
Jessie Frazelle <jess@docker.com> (@jfrazelle)
|
34
vendor/github.com/docker/docker-ce/components/engine/contrib/init/systemd/docker.service
generated
vendored
Normal file
34
vendor/github.com/docker/docker-ce/components/engine/contrib/init/systemd/docker.service
generated
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
[Unit]
|
||||
Description=Docker Application Container Engine
|
||||
Documentation=https://docs.docker.com
|
||||
After=network-online.target docker.socket firewalld.service
|
||||
Wants=network-online.target
|
||||
Requires=docker.socket
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
# 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
|
||||
# for containers run by docker
|
||||
ExecStart=/usr/bin/dockerd -H fd://
|
||||
ExecReload=/bin/kill -s HUP $MAINPID
|
||||
LimitNOFILE=1048576
|
||||
# Having non-zero Limit*s causes performance problems due to accounting overhead
|
||||
# in the kernel. We recommend using cgroups to do container-local accounting.
|
||||
LimitNPROC=infinity
|
||||
LimitCORE=infinity
|
||||
# Uncomment TasksMax if your systemd version supports it.
|
||||
# Only systemd 226 and above support this version.
|
||||
#TasksMax=infinity
|
||||
TimeoutStartSec=0
|
||||
# set delegate yes so that systemd does not reset the cgroups of docker containers
|
||||
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]
|
||||
WantedBy=multi-user.target
|
33
vendor/github.com/docker/docker-ce/components/engine/contrib/init/systemd/docker.service.rpm
generated
vendored
Normal file
33
vendor/github.com/docker/docker-ce/components/engine/contrib/init/systemd/docker.service.rpm
generated
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
[Unit]
|
||||
Description=Docker Application Container Engine
|
||||
Documentation=https://docs.docker.com
|
||||
After=network-online.target firewalld.service
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
# 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
|
||||
# for containers run by docker
|
||||
ExecStart=/usr/bin/dockerd
|
||||
ExecReload=/bin/kill -s HUP $MAINPID
|
||||
# Having non-zero Limit*s causes performance problems due to accounting overhead
|
||||
# in the kernel. We recommend using cgroups to do container-local accounting.
|
||||
LimitNOFILE=infinity
|
||||
LimitNPROC=infinity
|
||||
LimitCORE=infinity
|
||||
# Uncomment TasksMax if your systemd version supports it.
|
||||
# Only systemd 226 and above support this version.
|
||||
#TasksMax=infinity
|
||||
TimeoutStartSec=0
|
||||
# set delegate yes so that systemd does not reset the cgroups of docker containers
|
||||
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]
|
||||
WantedBy=multi-user.target
|
12
vendor/github.com/docker/docker-ce/components/engine/contrib/init/systemd/docker.socket
generated
vendored
Normal file
12
vendor/github.com/docker/docker-ce/components/engine/contrib/init/systemd/docker.socket
generated
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
[Unit]
|
||||
Description=Docker Socket for the API
|
||||
PartOf=docker.service
|
||||
|
||||
[Socket]
|
||||
ListenStream=/var/run/docker.sock
|
||||
SocketMode=0660
|
||||
SocketUser=root
|
||||
SocketGroup=docker
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
156
vendor/github.com/docker/docker-ce/components/engine/contrib/init/sysvinit-debian/docker
generated
vendored
Executable file
156
vendor/github.com/docker/docker-ce/components/engine/contrib/init/sysvinit-debian/docker
generated
vendored
Executable file
|
@ -0,0 +1,156 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: docker
|
||||
# Required-Start: $syslog $remote_fs
|
||||
# Required-Stop: $syslog $remote_fs
|
||||
# Should-Start: cgroupfs-mount cgroup-lite
|
||||
# Should-Stop: cgroupfs-mount cgroup-lite
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Create lightweight, portable, self-sufficient containers.
|
||||
# Description:
|
||||
# Docker is an open-source project to easily create lightweight, portable,
|
||||
# self-sufficient containers from any application. The same container that a
|
||||
# developer builds and tests on a laptop can run at scale, in production, on
|
||||
# VMs, bare metal, OpenStack clusters, public clouds and more.
|
||||
### END INIT INFO
|
||||
|
||||
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
|
||||
|
||||
BASE=docker
|
||||
|
||||
# modify these in /etc/default/$BASE (/etc/default/docker)
|
||||
DOCKERD=/usr/bin/dockerd
|
||||
# This is the pid file managed by docker itself
|
||||
DOCKER_PIDFILE=/var/run/$BASE.pid
|
||||
# This is the pid file created/managed by start-stop-daemon
|
||||
DOCKER_SSD_PIDFILE=/var/run/$BASE-ssd.pid
|
||||
DOCKER_LOGFILE=/var/log/$BASE.log
|
||||
DOCKER_OPTS=
|
||||
DOCKER_DESC="Docker"
|
||||
|
||||
# Get lsb functions
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
if [ -f /etc/default/$BASE ]; then
|
||||
. /etc/default/$BASE
|
||||
fi
|
||||
|
||||
# Check docker is present
|
||||
if [ ! -x $DOCKERD ]; then
|
||||
log_failure_msg "$DOCKERD not present or not executable"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
check_init() {
|
||||
# see also init_is_upstart in /lib/lsb/init-functions (which isn't available in Ubuntu 12.04, or we'd use it directly)
|
||||
if [ -x /sbin/initctl ] && /sbin/initctl version 2>/dev/null | grep -q upstart; then
|
||||
log_failure_msg "$DOCKER_DESC is managed via upstart, try using service $BASE $1"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
fail_unless_root() {
|
||||
if [ "$(id -u)" != '0' ]; then
|
||||
log_failure_msg "$DOCKER_DESC must be run as root"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
cgroupfs_mount() {
|
||||
# see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
|
||||
if grep -v '^#' /etc/fstab | grep -q cgroup \
|
||||
|| [ ! -e /proc/cgroups ] \
|
||||
|| [ ! -d /sys/fs/cgroup ]; then
|
||||
return
|
||||
fi
|
||||
if ! mountpoint -q /sys/fs/cgroup; then
|
||||
mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
|
||||
fi
|
||||
(
|
||||
cd /sys/fs/cgroup
|
||||
for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
|
||||
mkdir -p $sys
|
||||
if ! mountpoint -q $sys; then
|
||||
if ! mount -n -t cgroup -o $sys cgroup $sys; then
|
||||
rmdir $sys || true
|
||||
fi
|
||||
fi
|
||||
done
|
||||
)
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
check_init
|
||||
|
||||
fail_unless_root
|
||||
|
||||
cgroupfs_mount
|
||||
|
||||
touch "$DOCKER_LOGFILE"
|
||||
chgrp docker "$DOCKER_LOGFILE"
|
||||
|
||||
ulimit -n 1048576
|
||||
|
||||
# Having non-zero limits causes performance problems due to accounting overhead
|
||||
# in the kernel. We recommend using cgroups to do container-local accounting.
|
||||
if [ "$BASH" ]; then
|
||||
ulimit -u unlimited
|
||||
else
|
||||
ulimit -p unlimited
|
||||
fi
|
||||
|
||||
log_begin_msg "Starting $DOCKER_DESC: $BASE"
|
||||
start-stop-daemon --start --background \
|
||||
--no-close \
|
||||
--exec "$DOCKERD" \
|
||||
--pidfile "$DOCKER_SSD_PIDFILE" \
|
||||
--make-pidfile \
|
||||
-- \
|
||||
-p "$DOCKER_PIDFILE" \
|
||||
$DOCKER_OPTS \
|
||||
>> "$DOCKER_LOGFILE" 2>&1
|
||||
log_end_msg $?
|
||||
;;
|
||||
|
||||
stop)
|
||||
check_init
|
||||
fail_unless_root
|
||||
if [ -f "$DOCKER_SSD_PIDFILE" ]; then
|
||||
log_begin_msg "Stopping $DOCKER_DESC: $BASE"
|
||||
start-stop-daemon --stop --pidfile "$DOCKER_SSD_PIDFILE" --retry 10
|
||||
log_end_msg $?
|
||||
else
|
||||
log_warning_msg "Docker already stopped - file $DOCKER_SSD_PIDFILE not found."
|
||||
fi
|
||||
;;
|
||||
|
||||
restart)
|
||||
check_init
|
||||
fail_unless_root
|
||||
docker_pid=`cat "$DOCKER_SSD_PIDFILE" 2>/dev/null`
|
||||
[ -n "$docker_pid" ] \
|
||||
&& ps -p $docker_pid > /dev/null 2>&1 \
|
||||
&& $0 stop
|
||||
$0 start
|
||||
;;
|
||||
|
||||
force-reload)
|
||||
check_init
|
||||
fail_unless_root
|
||||
$0 restart
|
||||
;;
|
||||
|
||||
status)
|
||||
check_init
|
||||
status_of_proc -p "$DOCKER_SSD_PIDFILE" "$DOCKERD" "$DOCKER_DESC"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: service docker {start|stop|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
20
vendor/github.com/docker/docker-ce/components/engine/contrib/init/sysvinit-debian/docker.default
generated
vendored
Normal file
20
vendor/github.com/docker/docker-ce/components/engine/contrib/init/sysvinit-debian/docker.default
generated
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
# Docker Upstart and SysVinit configuration file
|
||||
|
||||
#
|
||||
# THIS FILE DOES NOT APPLY TO SYSTEMD
|
||||
#
|
||||
# Please see the documentation for "systemd drop-ins":
|
||||
# https://docs.docker.com/engine/admin/systemd/
|
||||
#
|
||||
|
||||
# Customize location of Docker binary (especially for development testing).
|
||||
#DOCKERD="/usr/local/bin/dockerd"
|
||||
|
||||
# Use DOCKER_OPTS to modify the daemon startup options.
|
||||
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
|
||||
|
||||
# If you need Docker to use an HTTP proxy, it can also be specified here.
|
||||
#export http_proxy="http://127.0.0.1:3128/"
|
||||
|
||||
# This is also a handy place to tweak where Docker's temporary files go.
|
||||
#export DOCKER_TMPDIR="/mnt/bigdrive/docker-tmp"
|
153
vendor/github.com/docker/docker-ce/components/engine/contrib/init/sysvinit-redhat/docker
generated
vendored
Executable file
153
vendor/github.com/docker/docker-ce/components/engine/contrib/init/sysvinit-redhat/docker
generated
vendored
Executable file
|
@ -0,0 +1,153 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# /etc/rc.d/init.d/docker
|
||||
#
|
||||
# Daemon for docker.com
|
||||
#
|
||||
# chkconfig: 2345 95 95
|
||||
# description: Daemon for docker.com
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: docker
|
||||
# Required-Start: $network cgconfig
|
||||
# Required-Stop:
|
||||
# Should-Start:
|
||||
# Should-Stop:
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: start and stop docker
|
||||
# Description: Daemon for docker.com
|
||||
### END INIT INFO
|
||||
|
||||
# Source function library.
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
prog="docker"
|
||||
unshare=/usr/bin/unshare
|
||||
exec="/usr/bin/dockerd"
|
||||
pidfile="/var/run/$prog.pid"
|
||||
lockfile="/var/lock/subsys/$prog"
|
||||
logfile="/var/log/$prog"
|
||||
|
||||
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
|
||||
|
||||
prestart() {
|
||||
service cgconfig status > /dev/null
|
||||
|
||||
if [[ $? != 0 ]]; then
|
||||
service cgconfig start
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
start() {
|
||||
if [ ! -x $exec ]; then
|
||||
if [ ! -e $exec ]; then
|
||||
echo "Docker executable $exec not found"
|
||||
else
|
||||
echo "You do not have permission to execute the Docker executable $exec"
|
||||
fi
|
||||
exit 5
|
||||
fi
|
||||
|
||||
check_for_cleanup
|
||||
|
||||
if ! [ -f $pidfile ]; then
|
||||
prestart
|
||||
printf "Starting $prog:\t"
|
||||
echo "\n$(date)\n" >> $logfile
|
||||
"$unshare" -m -- $exec $other_args >> $logfile 2>&1 &
|
||||
pid=$!
|
||||
touch $lockfile
|
||||
# wait up to 10 seconds for the pidfile to exist. see
|
||||
# https://github.com/docker/docker/issues/5359
|
||||
tries=0
|
||||
while [ ! -f $pidfile -a $tries -lt 10 ]; do
|
||||
sleep 1
|
||||
tries=$((tries + 1))
|
||||
echo -n '.'
|
||||
done
|
||||
if [ ! -f $pidfile ]; then
|
||||
failure
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
success
|
||||
echo
|
||||
else
|
||||
failure
|
||||
echo
|
||||
printf "$pidfile still exists...\n"
|
||||
exit 7
|
||||
fi
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo -n $"Stopping $prog: "
|
||||
killproc -p $pidfile -d 300 $prog
|
||||
retval=$?
|
||||
echo
|
||||
[ $retval -eq 0 ] && rm -f $lockfile
|
||||
return $retval
|
||||
}
|
||||
|
||||
restart() {
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
reload() {
|
||||
restart
|
||||
}
|
||||
|
||||
force_reload() {
|
||||
restart
|
||||
}
|
||||
|
||||
rh_status() {
|
||||
status -p $pidfile $prog
|
||||
}
|
||||
|
||||
rh_status_q() {
|
||||
rh_status >/dev/null 2>&1
|
||||
}
|
||||
|
||||
|
||||
check_for_cleanup() {
|
||||
if [ -f ${pidfile} ]; then
|
||||
/bin/ps -fp $(cat ${pidfile}) > /dev/null || rm ${pidfile}
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
rh_status_q && exit 0
|
||||
$1
|
||||
;;
|
||||
stop)
|
||||
rh_status_q || exit 0
|
||||
$1
|
||||
;;
|
||||
restart)
|
||||
$1
|
||||
;;
|
||||
reload)
|
||||
rh_status_q || exit 7
|
||||
$1
|
||||
;;
|
||||
force-reload)
|
||||
force_reload
|
||||
;;
|
||||
status)
|
||||
rh_status
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
rh_status_q || exit 0
|
||||
restart
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
|
||||
exit 2
|
||||
esac
|
||||
|
||||
exit $?
|
7
vendor/github.com/docker/docker-ce/components/engine/contrib/init/sysvinit-redhat/docker.sysconfig
generated
vendored
Normal file
7
vendor/github.com/docker/docker-ce/components/engine/contrib/init/sysvinit-redhat/docker.sysconfig
generated
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
# /etc/sysconfig/docker
|
||||
#
|
||||
# Other arguments to pass to the docker daemon process
|
||||
# These will be parsed by the sysv initscript and appended
|
||||
# to the arguments list passed to docker daemon
|
||||
|
||||
other_args=""
|
2
vendor/github.com/docker/docker-ce/components/engine/contrib/init/upstart/REVIEWERS
generated
vendored
Normal file
2
vendor/github.com/docker/docker-ce/components/engine/contrib/init/upstart/REVIEWERS
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
Tianon Gravi <admwiggin@gmail.com> (@tianon)
|
||||
Jessie Frazelle <jess@docker.com> (@jfrazelle)
|
72
vendor/github.com/docker/docker-ce/components/engine/contrib/init/upstart/docker.conf
generated
vendored
Normal file
72
vendor/github.com/docker/docker-ce/components/engine/contrib/init/upstart/docker.conf
generated
vendored
Normal file
|
@ -0,0 +1,72 @@
|
|||
description "Docker daemon"
|
||||
|
||||
start on (filesystem and net-device-up IFACE!=lo)
|
||||
stop on runlevel [!2345]
|
||||
|
||||
limit nofile 524288 1048576
|
||||
|
||||
# Having non-zero limits causes performance problems due to accounting overhead
|
||||
# in the kernel. We recommend using cgroups to do container-local accounting.
|
||||
limit nproc unlimited unlimited
|
||||
|
||||
respawn
|
||||
|
||||
kill timeout 20
|
||||
|
||||
pre-start script
|
||||
# see also https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
|
||||
if grep -v '^#' /etc/fstab | grep -q cgroup \
|
||||
|| [ ! -e /proc/cgroups ] \
|
||||
|| [ ! -d /sys/fs/cgroup ]; then
|
||||
exit 0
|
||||
fi
|
||||
if ! mountpoint -q /sys/fs/cgroup; then
|
||||
mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
|
||||
fi
|
||||
(
|
||||
cd /sys/fs/cgroup
|
||||
for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
|
||||
mkdir -p $sys
|
||||
if ! mountpoint -q $sys; then
|
||||
if ! mount -n -t cgroup -o $sys cgroup $sys; then
|
||||
rmdir $sys || true
|
||||
fi
|
||||
fi
|
||||
done
|
||||
)
|
||||
end script
|
||||
|
||||
script
|
||||
# modify these in /etc/default/$UPSTART_JOB (/etc/default/docker)
|
||||
DOCKERD=/usr/bin/dockerd
|
||||
DOCKER_OPTS=
|
||||
if [ -f /etc/default/$UPSTART_JOB ]; then
|
||||
. /etc/default/$UPSTART_JOB
|
||||
fi
|
||||
exec "$DOCKERD" $DOCKER_OPTS --raw-logs
|
||||
end script
|
||||
|
||||
# Don't emit "started" event until docker.sock is ready.
|
||||
# See https://github.com/docker/docker/issues/6647
|
||||
post-start script
|
||||
DOCKER_OPTS=
|
||||
DOCKER_SOCKET=
|
||||
if [ -f /etc/default/$UPSTART_JOB ]; then
|
||||
. /etc/default/$UPSTART_JOB
|
||||
fi
|
||||
|
||||
if ! printf "%s" "$DOCKER_OPTS" | grep -qE -e '-H|--host'; then
|
||||
DOCKER_SOCKET=/var/run/docker.sock
|
||||
else
|
||||
DOCKER_SOCKET=$(printf "%s" "$DOCKER_OPTS" | grep -oP -e '(-H|--host)\W*unix://\K(\S+)' | sed 1q)
|
||||
fi
|
||||
|
||||
if [ -n "$DOCKER_SOCKET" ]; then
|
||||
while ! [ -e "$DOCKER_SOCKET" ]; do
|
||||
initctl status $UPSTART_JOB | grep -qE "(stop|respawn)/" && exit 1
|
||||
echo "Waiting for $DOCKER_SOCKET"
|
||||
sleep 0.1
|
||||
done
|
||||
echo "$DOCKER_SOCKET is up"
|
||||
fi
|
||||
end script
|
45
vendor/github.com/docker/docker-ce/components/engine/contrib/mac-install-bundle.sh
generated
vendored
Executable file
45
vendor/github.com/docker/docker-ce/components/engine/contrib/mac-install-bundle.sh
generated
vendored
Executable file
|
@ -0,0 +1,45 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
errexit() {
|
||||
echo "$1"
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ "$(uname -s)" == "Darwin" ] || errexit "This script can only be used on a Mac"
|
||||
|
||||
[ $# -eq 1 ] || errexit "Usage: $0 install|undo"
|
||||
|
||||
BUNDLE="bundles/$(cat VERSION)"
|
||||
BUNDLE_PATH="$PWD/$BUNDLE"
|
||||
CLIENT_PATH="$BUNDLE_PATH/cross/darwin/amd64/docker"
|
||||
DATABASE="$HOME/Library/Containers/com.docker.docker/Data/database"
|
||||
DATABASE_KEY="$DATABASE/com.docker.driver.amd64-linux/bundle"
|
||||
|
||||
[ -d "$DATABASE" ] || errexit "Docker for Mac must be installed for this script"
|
||||
|
||||
case "$1" in
|
||||
"install")
|
||||
[ -d "$BUNDLE" ] || errexit "cannot find bundle $BUNDLE"
|
||||
[ -e "$CLIENT_PATH" ] || errexit "you need to run make cross first"
|
||||
[ -e "$BUNDLE/binary-daemon/dockerd" ] || errexit "you need to build binaries first"
|
||||
[ -f "$BUNDLE/binary-client/docker" ] || errexit "you need to build binaries first"
|
||||
git -C "$DATABASE" reset --hard >/dev/null
|
||||
echo "$BUNDLE_PATH" > "$DATABASE_KEY"
|
||||
git -C "$DATABASE" add "$DATABASE_KEY"
|
||||
git -C "$DATABASE" commit -m "update bundle to $BUNDLE_PATH"
|
||||
rm -f /usr/local/bin/docker
|
||||
cp "$CLIENT_PATH" /usr/local/bin
|
||||
echo "Bundle installed. Restart Docker to use. To uninstall, reset Docker to factory defaults."
|
||||
;;
|
||||
"undo")
|
||||
git -C "$DATABASE" reset --hard >/dev/null
|
||||
[ -f "$DATABASE_KEY" ] || errexit "bundle not set"
|
||||
git -C "$DATABASE" rm "$DATABASE_KEY"
|
||||
git -C "$DATABASE" commit -m "remove bundle"
|
||||
rm -f /usr/local/bin/docker
|
||||
ln -s "$HOME/Library/Group Containers/group.com.docker/bin/docker" /usr/local/bin
|
||||
echo "Bundle removed. Using dev versions may cause issues, a reset to factory defaults is recommended."
|
||||
;;
|
||||
esac
|
90
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-alpine.sh
generated
vendored
Executable file
90
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-alpine.sh
generated
vendored
Executable file
|
@ -0,0 +1,90 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
[ $(id -u) -eq 0 ] || {
|
||||
printf >&2 '%s requires root\n' "$0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
usage() {
|
||||
printf >&2 '%s: [-r release] [-m mirror] [-s] [-c additional repository] [-a arch]\n' "$0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
tmp() {
|
||||
TMP=$(mktemp -d ${TMPDIR:-/var/tmp}/alpine-docker-XXXXXXXXXX)
|
||||
ROOTFS=$(mktemp -d ${TMPDIR:-/var/tmp}/alpine-docker-rootfs-XXXXXXXXXX)
|
||||
trap "rm -rf $TMP $ROOTFS" EXIT TERM INT
|
||||
}
|
||||
|
||||
apkv() {
|
||||
curl -sSL $MAINREPO/$ARCH/APKINDEX.tar.gz | tar -Oxz |
|
||||
grep --text '^P:apk-tools-static$' -A1 | tail -n1 | cut -d: -f2
|
||||
}
|
||||
|
||||
getapk() {
|
||||
curl -sSL $MAINREPO/$ARCH/apk-tools-static-$(apkv).apk |
|
||||
tar -xz -C $TMP sbin/apk.static
|
||||
}
|
||||
|
||||
mkbase() {
|
||||
$TMP/sbin/apk.static --repository $MAINREPO --update-cache --allow-untrusted \
|
||||
--root $ROOTFS --initdb add alpine-base
|
||||
}
|
||||
|
||||
conf() {
|
||||
printf '%s\n' $MAINREPO > $ROOTFS/etc/apk/repositories
|
||||
printf '%s\n' $ADDITIONALREPO >> $ROOTFS/etc/apk/repositories
|
||||
}
|
||||
|
||||
pack() {
|
||||
local id
|
||||
id=$(tar --numeric-owner -C $ROOTFS -c . | docker import - alpine:$REL)
|
||||
|
||||
docker tag $id alpine:latest
|
||||
docker run -i -t --rm alpine printf 'alpine:%s with id=%s created!\n' $REL $id
|
||||
}
|
||||
|
||||
save() {
|
||||
[ $SAVE -eq 1 ] || return 0
|
||||
|
||||
tar --numeric-owner -C $ROOTFS -c . | xz > rootfs.tar.xz
|
||||
}
|
||||
|
||||
while getopts "hr:m:sc:a:" opt; do
|
||||
case $opt in
|
||||
r)
|
||||
REL=$OPTARG
|
||||
;;
|
||||
m)
|
||||
MIRROR=$OPTARG
|
||||
;;
|
||||
s)
|
||||
SAVE=1
|
||||
;;
|
||||
c)
|
||||
ADDITIONALREPO=$OPTARG
|
||||
;;
|
||||
a)
|
||||
ARCH=$OPTARG
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
REL=${REL:-edge}
|
||||
MIRROR=${MIRROR:-http://nl.alpinelinux.org/alpine}
|
||||
SAVE=${SAVE:-0}
|
||||
MAINREPO=$MIRROR/$REL/main
|
||||
ADDITIONALREPO=$MIRROR/$REL/${ADDITIONALREPO:-community}
|
||||
ARCH=${ARCH:-$(uname -m)}
|
||||
|
||||
tmp
|
||||
getapk
|
||||
mkbase
|
||||
conf
|
||||
pack
|
||||
save
|
92
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-arch-pacman.conf
generated
vendored
Normal file
92
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-arch-pacman.conf
generated
vendored
Normal file
|
@ -0,0 +1,92 @@
|
|||
#
|
||||
# /etc/pacman.conf
|
||||
#
|
||||
# See the pacman.conf(5) manpage for option and repository directives
|
||||
|
||||
#
|
||||
# GENERAL OPTIONS
|
||||
#
|
||||
[options]
|
||||
# The following paths are commented out with their default values listed.
|
||||
# If you wish to use different paths, uncomment and update the paths.
|
||||
#RootDir = /
|
||||
#DBPath = /var/lib/pacman/
|
||||
#CacheDir = /var/cache/pacman/pkg/
|
||||
#LogFile = /var/log/pacman.log
|
||||
#GPGDir = /etc/pacman.d/gnupg/
|
||||
HoldPkg = pacman glibc
|
||||
#XferCommand = /usr/bin/curl -C - -f %u > %o
|
||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
||||
#CleanMethod = KeepInstalled
|
||||
#UseDelta = 0.7
|
||||
Architecture = auto
|
||||
|
||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||
#IgnorePkg =
|
||||
#IgnoreGroup =
|
||||
|
||||
#NoUpgrade =
|
||||
#NoExtract =
|
||||
|
||||
# Misc options
|
||||
#UseSyslog
|
||||
#Color
|
||||
#TotalDownload
|
||||
# We cannot check disk space from within a chroot environment
|
||||
#CheckSpace
|
||||
#VerbosePkgLists
|
||||
|
||||
# By default, pacman accepts packages signed by keys that its local keyring
|
||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
|
||||
SigLevel = Required DatabaseOptional
|
||||
LocalFileSigLevel = Optional
|
||||
#RemoteFileSigLevel = Required
|
||||
|
||||
# NOTE: You must run `pacman-key --init` before first using pacman; the local
|
||||
# keyring can then be populated with the keys of all official Arch Linux
|
||||
# packagers with `pacman-key --populate archlinux`.
|
||||
|
||||
#
|
||||
# REPOSITORIES
|
||||
# - can be defined here or included from another file
|
||||
# - pacman will search repositories in the order defined here
|
||||
# - local/custom mirrors can be added here or in separate files
|
||||
# - repositories listed first will take precedence when packages
|
||||
# have identical names, regardless of version number
|
||||
# - URLs will have $repo replaced by the name of the current repo
|
||||
# - URLs will have $arch replaced by the name of the architecture
|
||||
#
|
||||
# Repository entries are of the format:
|
||||
# [repo-name]
|
||||
# Server = ServerName
|
||||
# Include = IncludePath
|
||||
#
|
||||
# The header [repo-name] is crucial - it must be present and
|
||||
# uncommented to enable the repo.
|
||||
#
|
||||
|
||||
# The testing repositories are disabled by default. To enable, uncomment the
|
||||
# repo name header and Include lines. You can add preferred servers immediately
|
||||
# after the header, and they will be used before the default mirrors.
|
||||
|
||||
#[testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[core]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[extra]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[community-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[community]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# An example of a custom package repository. See the pacman manpage for
|
||||
# tips on creating your own repositories.
|
||||
#[custom]
|
||||
#SigLevel = Optional TrustAll
|
||||
#Server = file:///home/custompkgs
|
||||
|
126
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-arch.sh
generated
vendored
Executable file
126
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-arch.sh
generated
vendored
Executable file
|
@ -0,0 +1,126 @@
|
|||
#!/usr/bin/env bash
|
||||
# Generate a minimal filesystem for archlinux and load it into the local
|
||||
# docker as "archlinux"
|
||||
# requires root
|
||||
set -e
|
||||
|
||||
hash pacstrap &>/dev/null || {
|
||||
echo "Could not find pacstrap. Run pacman -S arch-install-scripts"
|
||||
exit 1
|
||||
}
|
||||
|
||||
hash expect &>/dev/null || {
|
||||
echo "Could not find expect. Run pacman -S expect"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
export LANG="C.UTF-8"
|
||||
|
||||
ROOTFS=$(mktemp -d ${TMPDIR:-/var/tmp}/rootfs-archlinux-XXXXXXXXXX)
|
||||
chmod 755 $ROOTFS
|
||||
|
||||
# packages to ignore for space savings
|
||||
PKGIGNORE=(
|
||||
cryptsetup
|
||||
device-mapper
|
||||
dhcpcd
|
||||
iproute2
|
||||
jfsutils
|
||||
linux
|
||||
lvm2
|
||||
man-db
|
||||
man-pages
|
||||
mdadm
|
||||
nano
|
||||
netctl
|
||||
openresolv
|
||||
pciutils
|
||||
pcmciautils
|
||||
reiserfsprogs
|
||||
s-nail
|
||||
systemd-sysvcompat
|
||||
usbutils
|
||||
vi
|
||||
xfsprogs
|
||||
)
|
||||
IFS=','
|
||||
PKGIGNORE="${PKGIGNORE[*]}"
|
||||
unset IFS
|
||||
|
||||
arch="$(uname -m)"
|
||||
case "$arch" in
|
||||
armv*)
|
||||
if pacman -Q archlinuxarm-keyring >/dev/null 2>&1; then
|
||||
pacman-key --init
|
||||
pacman-key --populate archlinuxarm
|
||||
else
|
||||
echo "Could not find archlinuxarm-keyring. Please, install it and run pacman-key --populate archlinuxarm"
|
||||
exit 1
|
||||
fi
|
||||
PACMAN_CONF=$(mktemp ${TMPDIR:-/var/tmp}/pacman-conf-archlinux-XXXXXXXXX)
|
||||
version="$(echo $arch | cut -c 5)"
|
||||
sed "s/Architecture = armv/Architecture = armv${version}h/g" './mkimage-archarm-pacman.conf' > "${PACMAN_CONF}"
|
||||
PACMAN_MIRRORLIST='Server = http://mirror.archlinuxarm.org/$arch/$repo'
|
||||
PACMAN_EXTRA_PKGS='archlinuxarm-keyring'
|
||||
EXPECT_TIMEOUT=1800 # Most armv* based devices can be very slow (e.g. RPiv1)
|
||||
ARCH_KEYRING=archlinuxarm
|
||||
DOCKER_IMAGE_NAME="armv${version}h/archlinux"
|
||||
;;
|
||||
*)
|
||||
PACMAN_CONF='./mkimage-arch-pacman.conf'
|
||||
PACMAN_MIRRORLIST='Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch'
|
||||
PACMAN_EXTRA_PKGS=''
|
||||
EXPECT_TIMEOUT=60
|
||||
ARCH_KEYRING=archlinux
|
||||
DOCKER_IMAGE_NAME=archlinux
|
||||
;;
|
||||
esac
|
||||
|
||||
export PACMAN_MIRRORLIST
|
||||
|
||||
expect <<EOF
|
||||
set send_slow {1 .1}
|
||||
proc send {ignore arg} {
|
||||
sleep .1
|
||||
exp_send -s -- \$arg
|
||||
}
|
||||
set timeout $EXPECT_TIMEOUT
|
||||
|
||||
spawn pacstrap -C $PACMAN_CONF -c -d -G -i $ROOTFS base haveged $PACMAN_EXTRA_PKGS --ignore $PKGIGNORE
|
||||
expect {
|
||||
-exact "anyway? \[Y/n\] " { send -- "n\r"; exp_continue }
|
||||
-exact "(default=all): " { send -- "\r"; exp_continue }
|
||||
-exact "installation? \[Y/n\]" { send -- "y\r"; exp_continue }
|
||||
-exact "delete it? \[Y/n\]" { send -- "y\r"; exp_continue }
|
||||
}
|
||||
EOF
|
||||
|
||||
arch-chroot $ROOTFS /bin/sh -c 'rm -r /usr/share/man/*'
|
||||
arch-chroot $ROOTFS /bin/sh -c "haveged -w 1024; pacman-key --init; pkill haveged; pacman -Rs --noconfirm haveged; pacman-key --populate $ARCH_KEYRING; pkill gpg-agent"
|
||||
arch-chroot $ROOTFS /bin/sh -c "ln -s /usr/share/zoneinfo/UTC /etc/localtime"
|
||||
echo 'en_US.UTF-8 UTF-8' > $ROOTFS/etc/locale.gen
|
||||
arch-chroot $ROOTFS locale-gen
|
||||
arch-chroot $ROOTFS /bin/sh -c 'echo $PACMAN_MIRRORLIST > /etc/pacman.d/mirrorlist'
|
||||
|
||||
# udev doesn't work in containers, rebuild /dev
|
||||
DEV=$ROOTFS/dev
|
||||
rm -rf $DEV
|
||||
mkdir -p $DEV
|
||||
mknod -m 666 $DEV/null c 1 3
|
||||
mknod -m 666 $DEV/zero c 1 5
|
||||
mknod -m 666 $DEV/random c 1 8
|
||||
mknod -m 666 $DEV/urandom c 1 9
|
||||
mkdir -m 755 $DEV/pts
|
||||
mkdir -m 1777 $DEV/shm
|
||||
mknod -m 666 $DEV/tty c 5 0
|
||||
mknod -m 600 $DEV/console c 5 1
|
||||
mknod -m 666 $DEV/tty0 c 4 0
|
||||
mknod -m 666 $DEV/full c 1 7
|
||||
mknod -m 600 $DEV/initctl p
|
||||
mknod -m 666 $DEV/ptmx c 5 2
|
||||
ln -sf /proc/self/fd $DEV/fd
|
||||
|
||||
tar --numeric-owner --xattrs --acls -C $ROOTFS -c . | docker import - $DOCKER_IMAGE_NAME
|
||||
docker run --rm -t $DOCKER_IMAGE_NAME echo Success.
|
||||
rm -rf $ROOTFS
|
98
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-archarm-pacman.conf
generated
vendored
Normal file
98
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-archarm-pacman.conf
generated
vendored
Normal file
|
@ -0,0 +1,98 @@
|
|||
#
|
||||
# /etc/pacman.conf
|
||||
#
|
||||
# See the pacman.conf(5) manpage for option and repository directives
|
||||
|
||||
#
|
||||
# GENERAL OPTIONS
|
||||
#
|
||||
[options]
|
||||
# The following paths are commented out with their default values listed.
|
||||
# If you wish to use different paths, uncomment and update the paths.
|
||||
#RootDir = /
|
||||
#DBPath = /var/lib/pacman/
|
||||
#CacheDir = /var/cache/pacman/pkg/
|
||||
#LogFile = /var/log/pacman.log
|
||||
#GPGDir = /etc/pacman.d/gnupg/
|
||||
HoldPkg = pacman glibc
|
||||
#XferCommand = /usr/bin/curl -C - -f %u > %o
|
||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
||||
#CleanMethod = KeepInstalled
|
||||
#UseDelta = 0.7
|
||||
Architecture = armv
|
||||
|
||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||
#IgnorePkg =
|
||||
#IgnoreGroup =
|
||||
|
||||
#NoUpgrade =
|
||||
#NoExtract =
|
||||
|
||||
# Misc options
|
||||
#UseSyslog
|
||||
#Color
|
||||
#TotalDownload
|
||||
# We cannot check disk space from within a chroot environment
|
||||
#CheckSpace
|
||||
#VerbosePkgLists
|
||||
|
||||
# By default, pacman accepts packages signed by keys that its local keyring
|
||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
|
||||
SigLevel = Required DatabaseOptional
|
||||
LocalFileSigLevel = Optional
|
||||
#RemoteFileSigLevel = Required
|
||||
|
||||
# NOTE: You must run `pacman-key --init` before first using pacman; the local
|
||||
# keyring can then be populated with the keys of all official Arch Linux
|
||||
# packagers with `pacman-key --populate archlinux`.
|
||||
|
||||
#
|
||||
# REPOSITORIES
|
||||
# - can be defined here or included from another file
|
||||
# - pacman will search repositories in the order defined here
|
||||
# - local/custom mirrors can be added here or in separate files
|
||||
# - repositories listed first will take precedence when packages
|
||||
# have identical names, regardless of version number
|
||||
# - URLs will have $repo replaced by the name of the current repo
|
||||
# - URLs will have $arch replaced by the name of the architecture
|
||||
#
|
||||
# Repository entries are of the format:
|
||||
# [repo-name]
|
||||
# Server = ServerName
|
||||
# Include = IncludePath
|
||||
#
|
||||
# The header [repo-name] is crucial - it must be present and
|
||||
# uncommented to enable the repo.
|
||||
#
|
||||
|
||||
# The testing repositories are disabled by default. To enable, uncomment the
|
||||
# repo name header and Include lines. You can add preferred servers immediately
|
||||
# after the header, and they will be used before the default mirrors.
|
||||
|
||||
#[testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[core]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[extra]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[community-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[community]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[alarm]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[aur]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# An example of a custom package repository. See the pacman manpage for
|
||||
# tips on creating your own repositories.
|
||||
#[custom]
|
||||
#SigLevel = Optional TrustAll
|
||||
#Server = file:///home/custompkgs
|
||||
|
75
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-crux.sh
generated
vendored
Executable file
75
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-crux.sh
generated
vendored
Executable file
|
@ -0,0 +1,75 @@
|
|||
#!/usr/bin/env bash
|
||||
# Generate a minimal filesystem for CRUX/Linux and load it into the local
|
||||
# docker as "cruxlinux"
|
||||
# requires root and the crux iso (http://crux.nu)
|
||||
|
||||
set -e
|
||||
|
||||
die () {
|
||||
echo >&2 "$@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ "$#" -eq 1 ] || die "1 argument(s) required, $# provided. Usage: ./mkimage-crux.sh /path/to/iso"
|
||||
|
||||
ISO=${1}
|
||||
|
||||
ROOTFS=$(mktemp -d ${TMPDIR:-/var/tmp}/rootfs-crux-XXXXXXXXXX)
|
||||
CRUX=$(mktemp -d ${TMPDIR:-/var/tmp}/crux-XXXXXXXXXX)
|
||||
TMP=$(mktemp -d ${TMPDIR:-/var/tmp}/XXXXXXXXXX)
|
||||
|
||||
VERSION=$(basename --suffix=.iso $ISO | sed 's/[^0-9.]*\([0-9.]*\).*/\1/')
|
||||
|
||||
# Mount the ISO
|
||||
mount -o ro,loop $ISO $CRUX
|
||||
|
||||
# Extract pkgutils
|
||||
tar -C $TMP -xf $CRUX/tools/pkgutils#*.pkg.tar.gz
|
||||
|
||||
# Put pkgadd in the $PATH
|
||||
export PATH="$TMP/usr/bin:$PATH"
|
||||
|
||||
# Install core packages
|
||||
mkdir -p $ROOTFS/var/lib/pkg
|
||||
touch $ROOTFS/var/lib/pkg/db
|
||||
for pkg in $CRUX/crux/core/*; do
|
||||
pkgadd -r $ROOTFS $pkg
|
||||
done
|
||||
|
||||
# Remove agetty and inittab config
|
||||
if (grep agetty ${ROOTFS}/etc/inittab 2>&1 > /dev/null); then
|
||||
echo "Removing agetty from /etc/inittab ..."
|
||||
chroot ${ROOTFS} sed -i -e "/agetty/d" /etc/inittab
|
||||
chroot ${ROOTFS} sed -i -e "/shutdown/d" /etc/inittab
|
||||
chroot ${ROOTFS} sed -i -e "/^$/N;/^\n$/d" /etc/inittab
|
||||
fi
|
||||
|
||||
# Remove kernel source
|
||||
rm -rf $ROOTFS/usr/src/*
|
||||
|
||||
# udev doesn't work in containers, rebuild /dev
|
||||
DEV=$ROOTFS/dev
|
||||
rm -rf $DEV
|
||||
mkdir -p $DEV
|
||||
mknod -m 666 $DEV/null c 1 3
|
||||
mknod -m 666 $DEV/zero c 1 5
|
||||
mknod -m 666 $DEV/random c 1 8
|
||||
mknod -m 666 $DEV/urandom c 1 9
|
||||
mkdir -m 755 $DEV/pts
|
||||
mkdir -m 1777 $DEV/shm
|
||||
mknod -m 666 $DEV/tty c 5 0
|
||||
mknod -m 600 $DEV/console c 5 1
|
||||
mknod -m 666 $DEV/tty0 c 4 0
|
||||
mknod -m 666 $DEV/full c 1 7
|
||||
mknod -m 600 $DEV/initctl p
|
||||
mknod -m 666 $DEV/ptmx c 5 2
|
||||
|
||||
IMAGE_ID=$(tar --numeric-owner -C $ROOTFS -c . | docker import - crux:$VERSION)
|
||||
docker tag $IMAGE_ID crux:latest
|
||||
docker run -i -t crux echo Success.
|
||||
|
||||
# Cleanup
|
||||
umount $CRUX
|
||||
rm -rf $ROOTFS
|
||||
rm -rf $CRUX
|
||||
rm -rf $TMP
|
73
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-pld.sh
generated
vendored
Executable file
73
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-pld.sh
generated
vendored
Executable file
|
@ -0,0 +1,73 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Generate a minimal filesystem for PLD Linux and load it into the local docker as "pld".
|
||||
# https://www.pld-linux.org/packages/docker
|
||||
#
|
||||
set -e
|
||||
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
echo >&2 "$0: requires root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
image_name=pld
|
||||
|
||||
tmpdir=$(mktemp -d ${TMPDIR:-/var/tmp}/pld-docker-XXXXXX)
|
||||
root=$tmpdir/rootfs
|
||||
install -d -m 755 $root
|
||||
|
||||
# to clean up:
|
||||
docker rmi $image_name || :
|
||||
|
||||
# build
|
||||
rpm -r $root --initdb
|
||||
|
||||
set +e
|
||||
install -d $root/dev/pts
|
||||
mknod $root/dev/random c 1 8 -m 644
|
||||
mknod $root/dev/urandom c 1 9 -m 644
|
||||
mknod $root/dev/full c 1 7 -m 666
|
||||
mknod $root/dev/null c 1 3 -m 666
|
||||
mknod $root/dev/zero c 1 5 -m 666
|
||||
mknod $root/dev/console c 5 1 -m 660
|
||||
set -e
|
||||
|
||||
poldek -r $root --up --noask -u \
|
||||
--noignore \
|
||||
-O 'rpmdef=_install_langs C' \
|
||||
-O 'rpmdef=_excludedocs 1' \
|
||||
vserver-packages \
|
||||
bash iproute2 coreutils grep poldek
|
||||
|
||||
# fix netsharedpath, so containers would be able to install when some paths are mounted
|
||||
sed -i -e 's;^#%_netsharedpath.*;%_netsharedpath /dev/shm:/sys:/proc:/dev:/etc/hostname;' $root/etc/rpm/macros
|
||||
|
||||
# no need for alternatives
|
||||
poldek-config -c $root/etc/poldek/poldek.conf ignore systemd-init
|
||||
|
||||
# this makes initscripts to believe network is up
|
||||
touch $root/var/lock/subsys/network
|
||||
|
||||
# cleanup large optional packages
|
||||
remove_packages="ca-certificates"
|
||||
for pkg in $remove_packages; do
|
||||
rpm -r $root -q $pkg && rpm -r $root -e $pkg --nodeps
|
||||
done
|
||||
|
||||
# cleanup more
|
||||
rm -v $root/etc/ld.so.cache
|
||||
rm -rfv $root/var/cache/hrmib/*
|
||||
rm -rfv $root/usr/share/man/man?/*
|
||||
rm -rfv $root/usr/share/locale/*/
|
||||
rm -rfv $root/usr/share/help/*/
|
||||
rm -rfv $root/usr/share/doc/*
|
||||
rm -rfv $root/usr/src/examples/*
|
||||
rm -rfv $root/usr/share/pixmaps/*
|
||||
|
||||
# and import
|
||||
tar --numeric-owner --xattrs --acls -C $root -c . | docker import - $image_name
|
||||
|
||||
# and test
|
||||
docker run -i -u root $image_name /bin/echo Success.
|
||||
|
||||
rm -r $tmpdir
|
136
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-yum.sh
generated
vendored
Executable file
136
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage-yum.sh
generated
vendored
Executable file
|
@ -0,0 +1,136 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# Create a base CentOS Docker image.
|
||||
#
|
||||
# This script is useful on systems with yum installed (e.g., building
|
||||
# a CentOS image on CentOS). See contrib/mkimage-rinse.sh for a way
|
||||
# to build CentOS images on other systems.
|
||||
|
||||
set -e
|
||||
|
||||
usage() {
|
||||
cat <<EOOPTS
|
||||
$(basename $0) [OPTIONS] <name>
|
||||
OPTIONS:
|
||||
-p "<packages>" The list of packages to install in the container.
|
||||
The default is blank.
|
||||
-g "<groups>" The groups of packages to install in the container.
|
||||
The default is "Core".
|
||||
-y <yumconf> The path to the yum config to install packages from. The
|
||||
default is /etc/yum.conf for Centos/RHEL and /etc/dnf/dnf.conf for Fedora
|
||||
EOOPTS
|
||||
exit 1
|
||||
}
|
||||
|
||||
# option defaults
|
||||
yum_config=/etc/yum.conf
|
||||
if [ -f /etc/dnf/dnf.conf ] && command -v dnf &> /dev/null; then
|
||||
yum_config=/etc/dnf/dnf.conf
|
||||
alias yum=dnf
|
||||
fi
|
||||
install_groups="Core"
|
||||
while getopts ":y:p:g:h" opt; do
|
||||
case $opt in
|
||||
y)
|
||||
yum_config=$OPTARG
|
||||
;;
|
||||
h)
|
||||
usage
|
||||
;;
|
||||
p)
|
||||
install_packages="$OPTARG"
|
||||
;;
|
||||
g)
|
||||
install_groups="$OPTARG"
|
||||
;;
|
||||
\?)
|
||||
echo "Invalid option: -$OPTARG"
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND - 1))
|
||||
name=$1
|
||||
|
||||
if [[ -z $name ]]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
target=$(mktemp -d --tmpdir $(basename $0).XXXXXX)
|
||||
|
||||
set -x
|
||||
|
||||
mkdir -m 755 "$target"/dev
|
||||
mknod -m 600 "$target"/dev/console c 5 1
|
||||
mknod -m 600 "$target"/dev/initctl p
|
||||
mknod -m 666 "$target"/dev/full c 1 7
|
||||
mknod -m 666 "$target"/dev/null c 1 3
|
||||
mknod -m 666 "$target"/dev/ptmx c 5 2
|
||||
mknod -m 666 "$target"/dev/random c 1 8
|
||||
mknod -m 666 "$target"/dev/tty c 5 0
|
||||
mknod -m 666 "$target"/dev/tty0 c 4 0
|
||||
mknod -m 666 "$target"/dev/urandom c 1 9
|
||||
mknod -m 666 "$target"/dev/zero c 1 5
|
||||
|
||||
# amazon linux yum will fail without vars set
|
||||
if [ -d /etc/yum/vars ]; then
|
||||
mkdir -p -m 755 "$target"/etc/yum
|
||||
cp -a /etc/yum/vars "$target"/etc/yum/
|
||||
fi
|
||||
|
||||
if [[ -n "$install_groups" ]];
|
||||
then
|
||||
yum -c "$yum_config" --installroot="$target" --releasever=/ --setopt=tsflags=nodocs \
|
||||
--setopt=group_package_types=mandatory -y groupinstall "$install_groups"
|
||||
fi
|
||||
|
||||
if [[ -n "$install_packages" ]];
|
||||
then
|
||||
yum -c "$yum_config" --installroot="$target" --releasever=/ --setopt=tsflags=nodocs \
|
||||
--setopt=group_package_types=mandatory -y install "$install_packages"
|
||||
fi
|
||||
|
||||
yum -c "$yum_config" --installroot="$target" -y clean all
|
||||
|
||||
cat > "$target"/etc/sysconfig/network <<EOF
|
||||
NETWORKING=yes
|
||||
HOSTNAME=localhost.localdomain
|
||||
EOF
|
||||
|
||||
# effectively: febootstrap-minimize --keep-zoneinfo --keep-rpmdb --keep-services "$target".
|
||||
# locales
|
||||
rm -rf "$target"/usr/{{lib,share}/locale,{lib,lib64}/gconv,bin/localedef,sbin/build-locale-archive}
|
||||
# docs and man pages
|
||||
rm -rf "$target"/usr/share/{man,doc,info,gnome/help}
|
||||
# cracklib
|
||||
rm -rf "$target"/usr/share/cracklib
|
||||
# i18n
|
||||
rm -rf "$target"/usr/share/i18n
|
||||
# yum cache
|
||||
rm -rf "$target"/var/cache/yum
|
||||
mkdir -p --mode=0755 "$target"/var/cache/yum
|
||||
# sln
|
||||
rm -rf "$target"/sbin/sln
|
||||
# ldconfig
|
||||
rm -rf "$target"/etc/ld.so.cache "$target"/var/cache/ldconfig
|
||||
mkdir -p --mode=0755 "$target"/var/cache/ldconfig
|
||||
|
||||
version=
|
||||
for file in "$target"/etc/{redhat,system}-release
|
||||
do
|
||||
if [ -r "$file" ]; then
|
||||
version="$(sed 's/^[^0-9\]*\([0-9.]\+\).*$/\1/' "$file")"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "$version" ]; then
|
||||
echo >&2 "warning: cannot autodetect OS version, using '$name' as tag"
|
||||
version=$name
|
||||
fi
|
||||
|
||||
tar --numeric-owner -c -C "$target" . | docker import - $name:$version
|
||||
|
||||
docker run -i -t --rm $name:$version /bin/bash -c 'echo success'
|
||||
|
||||
rm -rf "$target"
|
120
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage.sh
generated
vendored
Executable file
120
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage.sh
generated
vendored
Executable file
|
@ -0,0 +1,120 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
mkimg="$(basename "$0")"
|
||||
|
||||
usage() {
|
||||
echo >&2 "usage: $mkimg [-d dir] [-t tag] [--compression algo| --no-compression] script [script-args]"
|
||||
echo >&2 " ie: $mkimg -t someuser/debian debootstrap --variant=minbase jessie"
|
||||
echo >&2 " $mkimg -t someuser/ubuntu debootstrap --include=ubuntu-minimal --components=main,universe trusty"
|
||||
echo >&2 " $mkimg -t someuser/busybox busybox-static"
|
||||
echo >&2 " $mkimg -t someuser/centos:5 rinse --distribution centos-5"
|
||||
echo >&2 " $mkimg -t someuser/mageia:4 mageia-urpmi --version=4"
|
||||
echo >&2 " $mkimg -t someuser/mageia:4 mageia-urpmi --version=4 --mirror=http://somemirror/"
|
||||
exit 1
|
||||
}
|
||||
|
||||
scriptDir="$(dirname "$(readlink -f "$BASH_SOURCE")")/mkimage"
|
||||
|
||||
os=
|
||||
os=$(uname -o)
|
||||
|
||||
optTemp=$(getopt --options '+d:t:c:hC' --longoptions 'dir:,tag:,compression:,no-compression,help' --name "$mkimg" -- "$@")
|
||||
eval set -- "$optTemp"
|
||||
unset optTemp
|
||||
|
||||
dir=
|
||||
tag=
|
||||
compression="auto"
|
||||
while true; do
|
||||
case "$1" in
|
||||
-d|--dir) dir="$2" ; shift 2 ;;
|
||||
-t|--tag) tag="$2" ; shift 2 ;;
|
||||
--compression) compression="$2" ; shift 2 ;;
|
||||
--no-compression) compression="none" ; shift 1 ;;
|
||||
-h|--help) usage ;;
|
||||
--) shift ; break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
script="$1"
|
||||
[ "$script" ] || usage
|
||||
shift
|
||||
|
||||
if [ "$compression" == 'auto' ] || [ -z "$compression" ]
|
||||
then
|
||||
compression='xz'
|
||||
fi
|
||||
|
||||
[ "$compression" == 'none' ] && compression=''
|
||||
|
||||
if [ ! -x "$scriptDir/$script" ]; then
|
||||
echo >&2 "error: $script does not exist or is not executable"
|
||||
echo >&2 " see $scriptDir for possible scripts"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# don't mistake common scripts like .febootstrap-minimize as image-creators
|
||||
if [[ "$script" == .* ]]; then
|
||||
echo >&2 "error: $script is a script helper, not a script"
|
||||
echo >&2 " see $scriptDir for possible scripts"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
delDir=
|
||||
if [ -z "$dir" ]; then
|
||||
dir="$(mktemp -d ${TMPDIR:-/var/tmp}/docker-mkimage.XXXXXXXXXX)"
|
||||
delDir=1
|
||||
fi
|
||||
|
||||
rootfsDir="$dir/rootfs"
|
||||
( set -x; mkdir -p "$rootfsDir" )
|
||||
|
||||
# pass all remaining arguments to $script
|
||||
"$scriptDir/$script" "$rootfsDir" "$@"
|
||||
|
||||
# Docker mounts tmpfs at /dev and procfs at /proc so we can remove them
|
||||
rm -rf "$rootfsDir/dev" "$rootfsDir/proc"
|
||||
mkdir -p "$rootfsDir/dev" "$rootfsDir/proc"
|
||||
|
||||
# make sure /etc/resolv.conf has something useful in it
|
||||
mkdir -p "$rootfsDir/etc"
|
||||
cat > "$rootfsDir/etc/resolv.conf" <<'EOF'
|
||||
nameserver 8.8.8.8
|
||||
nameserver 8.8.4.4
|
||||
EOF
|
||||
|
||||
tarFile="$dir/rootfs.tar${compression:+.$compression}"
|
||||
touch "$tarFile"
|
||||
|
||||
(
|
||||
set -x
|
||||
tar --numeric-owner --create --auto-compress --file "$tarFile" --directory "$rootfsDir" --transform='s,^./,,' .
|
||||
)
|
||||
|
||||
echo >&2 "+ cat > '$dir/Dockerfile'"
|
||||
cat > "$dir/Dockerfile" <<EOF
|
||||
FROM scratch
|
||||
ADD $(basename "$tarFile") /
|
||||
EOF
|
||||
|
||||
# if our generated image has a decent shell, let's set a default command
|
||||
for shell in /bin/bash /usr/bin/fish /usr/bin/zsh /bin/sh; do
|
||||
if [ -x "$rootfsDir/$shell" ]; then
|
||||
( set -x; echo 'CMD ["'"$shell"'"]' >> "$dir/Dockerfile" )
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
( set -x; rm -rf "$rootfsDir" )
|
||||
|
||||
if [ "$tag" ]; then
|
||||
( set -x; docker build -t "$tag" "$dir" )
|
||||
elif [ "$delDir" ]; then
|
||||
# if we didn't specify a tag and we're going to delete our dir, let's just build an untagged image so that we did _something_
|
||||
( set -x; docker build "$dir" )
|
||||
fi
|
||||
|
||||
if [ "$delDir" ]; then
|
||||
( set -x; rm -rf "$dir" )
|
||||
fi
|
28
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage/.febootstrap-minimize
generated
vendored
Executable file
28
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage/.febootstrap-minimize
generated
vendored
Executable file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
rootfsDir="$1"
|
||||
shift
|
||||
|
||||
(
|
||||
cd "$rootfsDir"
|
||||
|
||||
# effectively: febootstrap-minimize --keep-zoneinfo --keep-rpmdb --keep-services "$target"
|
||||
# locales
|
||||
rm -rf usr/{{lib,share}/locale,{lib,lib64}/gconv,bin/localedef,sbin/build-locale-archive}
|
||||
# docs and man pages
|
||||
rm -rf usr/share/{man,doc,info,gnome/help}
|
||||
# cracklib
|
||||
rm -rf usr/share/cracklib
|
||||
# i18n
|
||||
rm -rf usr/share/i18n
|
||||
# yum cache
|
||||
rm -rf var/cache/yum
|
||||
mkdir -p --mode=0755 var/cache/yum
|
||||
# sln
|
||||
rm -rf sbin/sln
|
||||
# ldconfig
|
||||
#rm -rf sbin/ldconfig
|
||||
rm -rf etc/ld.so.cache var/cache/ldconfig
|
||||
mkdir -p --mode=0755 var/cache/ldconfig
|
||||
)
|
34
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage/busybox-static
generated
vendored
Executable file
34
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage/busybox-static
generated
vendored
Executable file
|
@ -0,0 +1,34 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
rootfsDir="$1"
|
||||
shift
|
||||
|
||||
busybox="$(which busybox 2>/dev/null || true)"
|
||||
if [ -z "$busybox" ]; then
|
||||
echo >&2 'error: busybox: not found'
|
||||
echo >&2 ' install it with your distribution "busybox-static" package'
|
||||
exit 1
|
||||
fi
|
||||
if ! ldd "$busybox" 2>&1 | grep -q 'not a dynamic executable'; then
|
||||
echo >&2 "error: '$busybox' appears to be a dynamic executable"
|
||||
echo >&2 ' you should install your distribution "busybox-static" package instead'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$rootfsDir/bin"
|
||||
rm -f "$rootfsDir/bin/busybox" # just in case
|
||||
cp "$busybox" "$rootfsDir/bin/busybox"
|
||||
|
||||
(
|
||||
cd "$rootfsDir"
|
||||
|
||||
IFS=$'\n'
|
||||
modules=( $(bin/busybox --list-modules) )
|
||||
unset IFS
|
||||
|
||||
for module in "${modules[@]}"; do
|
||||
mkdir -p "$(dirname "$module")"
|
||||
ln -sf /bin/busybox "$module"
|
||||
done
|
||||
)
|
251
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage/debootstrap
generated
vendored
Executable file
251
vendor/github.com/docker/docker-ce/components/engine/contrib/mkimage/debootstrap
generated
vendored
Executable file
|
@ -0,0 +1,251 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
mkimgdeb="$(basename "$0")"
|
||||
mkimg="$(dirname "$0").sh"
|
||||
|
||||
usage() {
|
||||
echo >&2 "usage: $mkimgdeb rootfsDir suite [debootstrap-args]"
|
||||
echo >&2 " note: $mkimgdeb meant to be used from $mkimg"
|
||||
exit 1
|
||||
}
|
||||
|
||||
rootfsDir="$1"
|
||||
if [ -z "$rootfsDir" ]; then
|
||||
echo >&2 "error: rootfsDir is missing"
|
||||
echo >&2
|
||||
usage
|
||||
fi
|
||||
shift
|
||||
|
||||
# we have to do a little fancy footwork to make sure "rootfsDir" becomes the second non-option argument to debootstrap
|
||||
|
||||
before=()
|
||||
while [ $# -gt 0 ] && [[ "$1" == -* ]]; do
|
||||
before+=( "$1" )
|
||||
shift
|
||||
done
|
||||
|
||||
suite="$1"
|
||||
if [ -z "$suite" ]; then
|
||||
echo >&2 "error: suite is missing"
|
||||
echo >&2
|
||||
usage
|
||||
fi
|
||||
shift
|
||||
|
||||
# get path to "chroot" in our current PATH
|
||||
chrootPath="$(type -P chroot || :)"
|
||||
if [ -z "$chrootPath" ]; then
|
||||
echo >&2 "error: chroot not found. Are you root?"
|
||||
echo >&2
|
||||
usage
|
||||
fi
|
||||
|
||||
rootfs_chroot() {
|
||||
# "chroot" doesn't set PATH, so we need to set it explicitly to something our new debootstrap chroot can use appropriately!
|
||||
|
||||
# set PATH and chroot away!
|
||||
PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \
|
||||
"$chrootPath" "$rootfsDir" "$@"
|
||||
}
|
||||
|
||||
# allow for DEBOOTSTRAP=qemu-debootstrap ./mkimage.sh ...
|
||||
: ${DEBOOTSTRAP:=debootstrap}
|
||||
|
||||
(
|
||||
set -x
|
||||
$DEBOOTSTRAP "${before[@]}" "$suite" "$rootfsDir" "$@"
|
||||
)
|
||||
|
||||
# now for some Docker-specific tweaks
|
||||
|
||||
# prevent init scripts from running during install/update
|
||||
echo >&2 "+ echo exit 101 > '$rootfsDir/usr/sbin/policy-rc.d'"
|
||||
cat > "$rootfsDir/usr/sbin/policy-rc.d" <<-'EOF'
|
||||
#!/bin/sh
|
||||
|
||||
# For most Docker users, "apt-get install" only happens during "docker build",
|
||||
# where starting services doesn't work and often fails in humorous ways. This
|
||||
# prevents those failures by stopping the services from attempting to start.
|
||||
|
||||
exit 101
|
||||
EOF
|
||||
chmod +x "$rootfsDir/usr/sbin/policy-rc.d"
|
||||
|
||||
# prevent upstart scripts from running during install/update
|
||||
(
|
||||
set -x
|
||||
rootfs_chroot dpkg-divert --local --rename --add /sbin/initctl
|
||||
cp -a "$rootfsDir/usr/sbin/policy-rc.d" "$rootfsDir/sbin/initctl"
|
||||
sed -i 's/^exit.*/exit 0/' "$rootfsDir/sbin/initctl"
|
||||
)
|
||||
|
||||
# shrink a little, since apt makes us cache-fat (wheezy: ~157.5MB vs ~120MB)
|
||||
( set -x; rootfs_chroot apt-get clean )
|
||||
|
||||
# this file is one APT creates to make sure we don't "autoremove" our currently
|
||||
# in-use kernel, which doesn't really apply to debootstraps/Docker images that
|
||||
# don't even have kernels installed
|
||||
rm -f "$rootfsDir/etc/apt/apt.conf.d/01autoremove-kernels"
|
||||
|
||||
# Ubuntu 10.04 sucks... :)
|
||||
if strings "$rootfsDir/usr/bin/dpkg" | grep -q unsafe-io; then
|
||||
# force dpkg not to call sync() after package extraction (speeding up installs)
|
||||
echo >&2 "+ echo force-unsafe-io > '$rootfsDir/etc/dpkg/dpkg.cfg.d/docker-apt-speedup'"
|
||||
cat > "$rootfsDir/etc/dpkg/dpkg.cfg.d/docker-apt-speedup" <<-'EOF'
|
||||
# For most Docker users, package installs happen during "docker build", which
|
||||
# doesn't survive power loss and gets restarted clean afterwards anyhow, so
|
||||
# this minor tweak gives us a nice speedup (much nicer on spinning disks,
|
||||
# obviously).
|
||||
|
||||
force-unsafe-io
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -d "$rootfsDir/etc/apt/apt.conf.d" ]; then
|
||||
# _keep_ us lean by effectively running "apt-get clean" after every install
|
||||
aptGetClean='"rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true";'
|
||||
echo >&2 "+ cat > '$rootfsDir/etc/apt/apt.conf.d/docker-clean'"
|
||||
cat > "$rootfsDir/etc/apt/apt.conf.d/docker-clean" <<-EOF
|
||||
# Since for most Docker users, package installs happen in "docker build" steps,
|
||||
# they essentially become individual layers due to the way Docker handles
|
||||
# layering, especially using CoW filesystems. What this means for us is that
|
||||
# the caches that APT keeps end up just wasting space in those layers, making
|
||||
# our layers unnecessarily large (especially since we'll normally never use
|
||||
# these caches again and will instead just "docker build" again and make a brand
|
||||
# new image).
|
||||
|
||||
# Ideally, these would just be invoking "apt-get clean", but in our testing,
|
||||
# that ended up being cyclic and we got stuck on APT's lock, so we get this fun
|
||||
# creation that's essentially just "apt-get clean".
|
||||
DPkg::Post-Invoke { ${aptGetClean} };
|
||||
APT::Update::Post-Invoke { ${aptGetClean} };
|
||||
|
||||
Dir::Cache::pkgcache "";
|
||||
Dir::Cache::srcpkgcache "";
|
||||
|
||||
# Note that we do realize this isn't the ideal way to do this, and are always
|
||||
# open to better suggestions (https://github.com/docker/docker/issues).
|
||||
EOF
|
||||
|
||||
# remove apt-cache translations for fast "apt-get update"
|
||||
echo >&2 "+ echo Acquire::Languages 'none' > '$rootfsDir/etc/apt/apt.conf.d/docker-no-languages'"
|
||||
cat > "$rootfsDir/etc/apt/apt.conf.d/docker-no-languages" <<-'EOF'
|
||||
# In Docker, we don't often need the "Translations" files, so we're just wasting
|
||||
# time and space by downloading them, and this inhibits that. For users that do
|
||||
# need them, it's a simple matter to delete this file and "apt-get update". :)
|
||||
|
||||
Acquire::Languages "none";
|
||||
EOF
|
||||
|
||||
echo >&2 "+ echo Acquire::GzipIndexes 'true' > '$rootfsDir/etc/apt/apt.conf.d/docker-gzip-indexes'"
|
||||
cat > "$rootfsDir/etc/apt/apt.conf.d/docker-gzip-indexes" <<-'EOF'
|
||||
# Since Docker users using "RUN apt-get update && apt-get install -y ..." in
|
||||
# their Dockerfiles don't go delete the lists files afterwards, we want them to
|
||||
# be as small as possible on-disk, so we explicitly request "gz" versions and
|
||||
# tell Apt to keep them gzipped on-disk.
|
||||
|
||||
# For comparison, an "apt-get update" layer without this on a pristine
|
||||
# "debian:wheezy" base image was "29.88 MB", where with this it was only
|
||||
# "8.273 MB".
|
||||
|
||||
Acquire::GzipIndexes "true";
|
||||
Acquire::CompressionTypes::Order:: "gz";
|
||||
EOF
|
||||
|
||||
# update "autoremove" configuration to be aggressive about removing suggests deps that weren't manually installed
|
||||
echo >&2 "+ echo Apt::AutoRemove::SuggestsImportant 'false' > '$rootfsDir/etc/apt/apt.conf.d/docker-autoremove-suggests'"
|
||||
cat > "$rootfsDir/etc/apt/apt.conf.d/docker-autoremove-suggests" <<-'EOF'
|
||||
# Since Docker users are looking for the smallest possible final images, the
|
||||
# following emerges as a very common pattern:
|
||||
|
||||
# RUN apt-get update \
|
||||
# && apt-get install -y <packages> \
|
||||
# && <do some compilation work> \
|
||||
# && apt-get purge -y --auto-remove <packages>
|
||||
|
||||
# By default, APT will actually _keep_ packages installed via Recommends or
|
||||
# Depends if another package Suggests them, even and including if the package
|
||||
# that originally caused them to be installed is removed. Setting this to
|
||||
# "false" ensures that APT is appropriately aggressive about removing the
|
||||
# packages it added.
|
||||
|
||||
# https://aptitude.alioth.debian.org/doc/en/ch02s05s05.html#configApt-AutoRemove-SuggestsImportant
|
||||
Apt::AutoRemove::SuggestsImportant "false";
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ -z "$DONT_TOUCH_SOURCES_LIST" ]; then
|
||||
# tweak sources.list, where appropriate
|
||||
lsbDist=
|
||||
if [ -z "$lsbDist" -a -r "$rootfsDir/etc/os-release" ]; then
|
||||
lsbDist="$(. "$rootfsDir/etc/os-release" && echo "$ID")"
|
||||
fi
|
||||
if [ -z "$lsbDist" -a -r "$rootfsDir/etc/lsb-release" ]; then
|
||||
lsbDist="$(. "$rootfsDir/etc/lsb-release" && echo "$DISTRIB_ID")"
|
||||
fi
|
||||
if [ -z "$lsbDist" -a -r "$rootfsDir/etc/debian_version" ]; then
|
||||
lsbDist='Debian'
|
||||
fi
|
||||
# normalize to lowercase for easier matching
|
||||
lsbDist="$(echo "$lsbDist" | tr '[:upper:]' '[:lower:]')"
|
||||
case "$lsbDist" in
|
||||
debian)
|
||||
# updates and security!
|
||||
if curl -o /dev/null -s --head --fail "http://security.debian.org/dists/$suite/updates/main/binary-$(rootfs_chroot dpkg --print-architecture)/Packages.gz"; then
|
||||
(
|
||||
set -x
|
||||
sed -i "
|
||||
p;
|
||||
s/ $suite / ${suite}-updates /
|
||||
" "$rootfsDir/etc/apt/sources.list"
|
||||
echo "deb http://security.debian.org $suite/updates main" >> "$rootfsDir/etc/apt/sources.list"
|
||||
)
|
||||
fi
|
||||
;;
|
||||
ubuntu)
|
||||
# add the updates and security repositories
|
||||
(
|
||||
set -x
|
||||
sed -i "
|
||||
p;
|
||||
s/ $suite / ${suite}-updates /; p;
|
||||
s/ $suite-updates / ${suite}-security /
|
||||
" "$rootfsDir/etc/apt/sources.list"
|
||||
)
|
||||
;;
|
||||
tanglu)
|
||||
# add the updates repository
|
||||
if [ "$suite" != 'devel' ]; then
|
||||
(
|
||||
set -x
|
||||
sed -i "
|
||||
p;
|
||||
s/ $suite / ${suite}-updates /
|
||||
" "$rootfsDir/etc/apt/sources.list"
|
||||
)
|
||||
fi
|
||||
;;
|
||||
steamos)
|
||||
# add contrib and non-free if "main" is the only component
|
||||
(
|
||||
set -x
|
||||
sed -i "s/ $suite main$/ $suite main contrib non-free/" "$rootfsDir/etc/apt/sources.list"
|
||||
)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
(
|
||||
set -x
|
||||
|
||||
# make sure we're fully up-to-date
|
||||
rootfs_chroot sh -xc 'apt-get update && apt-get dist-upgrade -y'
|
||||
|
||||
# delete all the apt list files since they're big and get stale quickly
|
||||
rm -rf "$rootfsDir/var/lib/apt/lists"/*
|
||||
# this forces "apt-get update" in dependent images, which is also good
|
||||
|
||||
mkdir "$rootfsDir/var/lib/apt/lists/partial" # Lucid... "E: Lists directory /var/lib/apt/lists/partial is missing."
|
||||
)
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue