docker-ce: Added Docker community edition
Signed-off-by: Gerard Ryan <G.M0N3Y.2503@gmail.com>
This commit is contained in:
parent
e6edb0b442
commit
f2793d55fe
4 changed files with 215 additions and 0 deletions
84
utils/docker-ce/Config.in
Normal file
84
utils/docker-ce/Config.in
Normal file
|
@ -0,0 +1,84 @@
|
|||
if PACKAGE_docker-ce
|
||||
config DOCKER_KERNEL_OPTIONS
|
||||
bool "Enable Basic kernel support for Docker"
|
||||
default n
|
||||
select KERNEL_CGROUPS
|
||||
select KERNEL_CGROUP_CPUACCT
|
||||
select KERNEL_CGROUP_SCHED
|
||||
select KERNEL_NAMESPACES
|
||||
select KERNEL_CPUSETS
|
||||
select KERNEL_MEMCG
|
||||
select KERNEL_KEYS
|
||||
select KERNEL_LXC_MISC
|
||||
select KERNEL_POSIX_MQUEUE
|
||||
help
|
||||
Select needed kernel options for Docker. Options include
|
||||
cgroups, namespaces and other miscellaneous options.
|
||||
see also https://github.com/docker/engine/blob/master/contrib/check-config.sh
|
||||
|
||||
config DOCKER_SECCOMP
|
||||
bool "Enable support for seccomp in Docker"
|
||||
default n
|
||||
select KERNEL_SECCOMP
|
||||
select PACKAGE_libseccomp
|
||||
help
|
||||
Build Docker with support for seccomp filters.
|
||||
Select libseccomp which also pulls-in the needed kernel features.
|
||||
|
||||
config DOCKER_RES_SHAPE
|
||||
bool "Enables support for resource shaping"
|
||||
default n
|
||||
select KERNEL_MEMCG_SWAP
|
||||
select KERNEL_MEMCG_SWAP_ENABLED
|
||||
select KERNEL_BLK_DEV_THROTTLING
|
||||
select KERNEL_CGROUP_PERF
|
||||
select KERNEL_FAIR_GROUP_SCHED
|
||||
select KERNEL_CFS_BANDWIDTH
|
||||
select KERNEL_RT_GROUP_SCHED
|
||||
|
||||
menu "Network"
|
||||
config DOCKER_NET_OVERLAY
|
||||
bool "Enables the Overlay network feature"
|
||||
default n
|
||||
select PACKAGE_kmod-udptunnel4
|
||||
help
|
||||
Selects kernel options for the Overlay network feature.
|
||||
Includes udptunnel4
|
||||
|
||||
config DOCKER_NET_ENCRYPT
|
||||
bool "Enable encrypted networking kernel support"
|
||||
depends on DOCKER_NET_OVERLAY
|
||||
default n
|
||||
select PACKAGE_kmod-ipsec
|
||||
select PACKAGE_kmod-ipsec4
|
||||
select PACKAGE_kmod-crypto-gcm
|
||||
select PACKAGE_kmod-crypto-ghash
|
||||
help
|
||||
Select needed kernel options for encrypted networking support.
|
||||
|
||||
config DOCKER_NET_MACVLAN
|
||||
bool "Enables macvlan kernel support"
|
||||
default n
|
||||
select PACKAGE_kmod-macvlan
|
||||
select PACKAGE_kmod-dummy
|
||||
|
||||
config DOCKER_NET_TFTP
|
||||
bool "Enable ftp/tftp client kernel support"
|
||||
default n
|
||||
select PACKAGE_kmod-nf-nathelper
|
||||
select PACKAGE_kmod-nf-nathelper-extra
|
||||
endmenu
|
||||
|
||||
menu "Storage"
|
||||
config DOCKER_STO_EXT4
|
||||
bool "Enables support for ext3 or ext4 as the backing filesystem"
|
||||
default n
|
||||
select KERNEL_EXT4_FS_POSIX_ACL
|
||||
|
||||
config DOCKER_STO_BTRFS
|
||||
bool "Enables support for btrfs as the backing filesystem"
|
||||
default n
|
||||
select PACKAGE_kmod-fs-btrfs
|
||||
select KERNEL_BTRFS_FS_POSIX_ACL
|
||||
endmenu
|
||||
endif
|
107
utils/docker-ce/Makefile
Normal file
107
utils/docker-ce/Makefile
Normal file
|
@ -0,0 +1,107 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=docker-ce
|
||||
PKG_VERSION:=18.09.6
|
||||
PKG_RELEASE:=1
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_LICENSE_FILES:=components/cli/LICENSE components/engine/LICENSE
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/docker/docker-ce/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=e8d2dd41e09e838e9043d4a5cf8433d8860afa20a611025621f7817b7ab16012
|
||||
PKG_SOURCE_VERSION:=481bc77156
|
||||
|
||||
PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
|
||||
|
||||
PKG_BUILD_DEPENDS:=golang/host
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
|
||||
GO_PKG:=github.com/docker
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../../lang/golang/golang-package.mk
|
||||
|
||||
define Package/docker-ce/config
|
||||
source "$(SOURCE)/Config.in"
|
||||
endef
|
||||
|
||||
define Package/docker-ce
|
||||
SECTION:=utils
|
||||
CATEGORY:=Utilities
|
||||
TITLE:=Docker Community Edition
|
||||
URL:=https://www.docker.com/
|
||||
DEPENDS:=$(GO_ARCH_DEPENDS) @TARGET_x86_64 +btrfs-progs +libdevmapper +containerd +cgroupfs-mount +ca-certificates +iptables-mod-extra +DOCKER_SECCOMP:libseccomp \
|
||||
+kmod-ikconfig +kmod-veth +kmod-br-netfilter +kmod-nf-ipvs
|
||||
USERID:=docker:docker
|
||||
MENU:=1
|
||||
endef
|
||||
|
||||
define Package/docker-ce/description
|
||||
Docker Engine is used by millions enables containerized applications
|
||||
to run anywhere consistently on any infrastructure.
|
||||
endef
|
||||
|
||||
define Build/Configure
|
||||
# move so GoPackage/Build/Configure will get the correct path
|
||||
mv $(PKG_BUILD_DIR)/components/engine $(PKG_BUILD_DIR)/
|
||||
mv $(PKG_BUILD_DIR)/components/cli $(PKG_BUILD_DIR)/
|
||||
|
||||
# docker generates files at build time so we'll just symlink for now and call GoPackage/Build/Configure later
|
||||
mkdir -p $(GO_PKG_BUILD_DIR)/bin \
|
||||
$(GO_PKG_BUILD_DIR)/src \
|
||||
$(GO_PKG_BUILD_DIR)/src/$(GO_PKG)/ \
|
||||
$(GO_PKG_CACHE_DIR) \
|
||||
$(GO_PKG_TMP_DIR)
|
||||
$(LN) $(PKG_BUILD_DIR)/cli $(GO_PKG_BUILD_DIR)/src/$(GO_PKG)/cli
|
||||
$(LN) $(PKG_BUILD_DIR)/engine $(GO_PKG_BUILD_DIR)/src/$(GO_PKG)/docker
|
||||
endef
|
||||
|
||||
ifeq ($(CONFIG_DOCKER_SECCOMP),y)
|
||||
BUILDTAGS:=seccomp
|
||||
else
|
||||
BUILDTAGS:=
|
||||
endif
|
||||
|
||||
define Build/Compile
|
||||
( \
|
||||
export GOPATH=$(GO_PKG_BUILD_DIR) \
|
||||
GOCACHE=$(GO_PKG_CACHE_DIR) \
|
||||
GOTMPDIR=$(GO_PKG_TMP_DIR) \
|
||||
GOROOT_FINAL=$(GO_TARGET_ROOT) \
|
||||
CC=$(TARGET_CC) \
|
||||
CXX=$(TARGET_CXX) \
|
||||
$(call GoPackage/Environment) \
|
||||
GITCOMMIT=$(PKG_SOURCE_VERSION) \
|
||||
DOCKER_GITCOMMIT=$(PKG_SOURCE_VERSION) \
|
||||
DOCKER_BUILDTAGS='$(BUILDTAGS)' \
|
||||
VERSION=$(PKG_VERSION) \
|
||||
\
|
||||
&& echo "Compiling CLI..." \
|
||||
&& cd $(PKG_BUILD_DIR)/cli \
|
||||
&& ./scripts/build/binary \
|
||||
\
|
||||
&& echo "Compiling Engine..." \
|
||||
&& cd $(PKG_BUILD_DIR)/engine \
|
||||
&& ./hack/make.sh binary \
|
||||
)
|
||||
|
||||
# done here to include autogenerated files also
|
||||
rm $(GO_PKG_BUILD_DIR)/src/$(GO_PKG)/cli
|
||||
rm $(GO_PKG_BUILD_DIR)/src/$(GO_PKG)/docker
|
||||
$(call GoPackage/Build/Configure)
|
||||
endef
|
||||
|
||||
define Package/docker-ce/install
|
||||
$(INSTALL_DIR) $(1)/usr/bin/
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/cli/build/docker $(1)/usr/bin/
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/engine/bundles/binary-daemon/dockerd $(1)/usr/bin/
|
||||
|
||||
$(INSTALL_DIR) $(1)/opt/docker/
|
||||
$(INSTALL_DIR) $(1)/usr/share/docker/
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/engine/contrib/check-config.sh $(1)/usr/share/docker/
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/dockerd.init $(1)/etc/init.d/dockerd
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,docker-ce))
|
11
utils/docker-ce/files/dockerd.init
Normal file
11
utils/docker-ce/files/dockerd.init
Normal file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh /etc/rc.common
|
||||
|
||||
USE_PROCD=1
|
||||
START=25
|
||||
|
||||
# docker can't run with a symlink in the path so we just use /opt/docker/
|
||||
start_service() {
|
||||
procd_open_instance
|
||||
procd_set_param command /usr/bin/dockerd -g /opt/docker/
|
||||
procd_close_instance
|
||||
}
|
13
utils/docker-ce/patches/001-libdevmapper_name_fix.patch
Normal file
13
utils/docker-ce/patches/001-libdevmapper_name_fix.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
Index: docker-ce-18.09.0/components/engine/hack/make.sh
|
||||
===================================================================
|
||||
--- docker-ce-18.09.0.orig/components/engine/hack/make.sh
|
||||
+++ docker-ce-18.09.0/components/engine/hack/make.sh
|
||||
@@ -129,7 +129,7 @@ fi
|
||||
# with a newer libdevmapper than the one it was built with.
|
||||
if \
|
||||
command -v gcc &> /dev/null \
|
||||
- && ! ( echo -e '#include <libdevmapper.h>\nint main() { dm_task_deferred_remove(NULL); }'| gcc -xc - -o /dev/null $(pkg-config --libs devmapper) &> /dev/null ) \
|
||||
+ && ! ( echo -e '#include <libdevmapper.h>\nint main() { dm_task_deferred_remove(NULL); }'| gcc -xc - -o /dev/null $(pkg-config --libs libdevmapper) &> /dev/null ) \
|
||||
; then
|
||||
add_buildtag libdm dlsym_deferred_remove
|
||||
fi
|
Loading…
Reference in a new issue