docker-proxy: new package

Add docker-proxy package to Buildroot. Needed by docker-engine at
runtime, and previously not included. This leads to the following error
when attempting to port-map ports to a container:

  $ docker run -p 8080:8080 nginx
  docker: Error response from daemon: driver failed programming external
  connectivity on endpoint:
  exec: "docker-proxy": executable file not found in $PATH.

Docker expects the docker-proxy binary to exist in the PATH.

Signed-off-by: Christian Stewart <christian@paral.in>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Christian Stewart 2018-03-03 19:43:42 -05:00 committed by Peter Korsgaard
parent 5bc71f825d
commit 8175041003
5 changed files with 69 additions and 0 deletions

View file

@ -427,6 +427,7 @@ F: package/aufs-util/
F: package/batman-adv/
F: package/docker-containerd/
F: package/docker-engine/
F: package/docker-proxy/
F: package/mosh/
F: package/rtl8821au/
F: package/runc/

View file

@ -1962,6 +1962,7 @@ menu "System tools"
source "package/docker-compose/Config.in"
source "package/docker-containerd/Config.in"
source "package/docker-engine/Config.in"
source "package/docker-proxy/Config.in"
source "package/dsp-tools/Config.in"
source "package/efibootmgr/Config.in"
source "package/efivar/Config.in"

View file

@ -0,0 +1,19 @@
config BR2_PACKAGE_DOCKER_PROXY
bool "docker-proxy"
depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
depends on BR2_TOOLCHAIN_HAS_THREADS
help
Libnetwork is a Container Network Model that provides a
consistent programming interface and the required network
abstractions for applications.
This package provides docker-proxy, a run-time dependency of
Docker.
https://github.com/docker/libnetwork
comment "docker-proxy needs a toolchain w/ threads"
depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
depends on !BR2_TOOLCHAIN_HAS_THREADS

View file

@ -0,0 +1,2 @@
# Locally calculated
sha256 2eee331b6ded567a36e7db708405b34032b93938682cf049025f48b96d755bf6 docker-proxy-7b2b1feb1de4817d522cc372af149ff48d25028e.tar.gz

View file

@ -0,0 +1,46 @@
################################################################################
#
# docker-proxy
#
################################################################################
DOCKER_PROXY_VERSION = 7b2b1feb1de4817d522cc372af149ff48d25028e
DOCKER_PROXY_SITE = $(call github,docker,libnetwork,$(DOCKER_PROXY_VERSION))
DOCKER_PROXY_LICENSE = Apache-2.0
DOCKER_PROXY_LICENSE_FILES = LICENSE
DOCKER_PROXY_DEPENDENCIES = host-go host-pkgconf
DOCKER_PROXY_GOPATH = "$(@D)/gopath"
DOCKER_PROXY_MAKE_ENV = $(HOST_GO_TARGET_ENV) \
CGO_ENABLED=1 \
CGO_NO_EMULATION=1 \
GOBIN="$(@D)/bin" \
GOPATH="$(DOCKER_PROXY_GOPATH)" \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
$(TARGET_MAKE_ENV)
ifeq ($(BR2_STATIC_LIBS),y)
DOCKER_PROXY_GLDFLAGS += -extldflags '-static'
endif
define DOCKER_PROXY_CONFIGURE_CMDS
mkdir -p $(DOCKER_PROXY_GOPATH)/src/github.com/docker
ln -fs $(@D) $(DOCKER_PROXY_GOPATH)/src/github.com/docker/libnetwork
endef
define DOCKER_PROXY_BUILD_CMDS
cd $(@D)/gopath/src/github.com/docker/libnetwork; \
$(DOCKER_PROXY_MAKE_ENV) \
$(HOST_DIR)/usr/bin/go build -v \
-o $(@D)/bin/docker-proxy \
-ldflags "$(DOCKER_PROXY_GLDFLAGS)" \
github.com/docker/libnetwork/cmd/proxy
endef
define DOCKER_PROXY_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/bin/docker-proxy $(TARGET_DIR)/usr/bin/docker-proxy
endef
$(eval $(generic-package))