--- /dev/null
+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
--- /dev/null
+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))