Message ID | 20170607225628.31423-2-christian@paral.in |
---|---|
State | Superseded |
Headers | show |
Hi Christian, On 08-06-17 00:56, Christian Stewart wrote: > docker-proxy is needed by docker-engine at runtime, and was > 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. I wonder if forcing these dependencies is really the way to go. As I understand it, if docker is used without portmapping, docker-proxy isn't needed, right? So we could basically consider docker-proxy a suboption of docker-engine. And add to its help text something like: This package is required to allow portmapping in docker-daemon. In fact, the same consideration goes for the other runtime dependencies of docker-engine. containerd is probably pretty much unavoidable, but are iptables and sqlite always needed, or only for certain features? Regards, Arnout > > Signed-off-by: Christian Stewart <christian@paral.in> > --- > package/docker-engine/Config.in | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/package/docker-engine/Config.in b/package/docker-engine/Config.in > index 05670a7..8feb11b 100644 > --- a/package/docker-engine/Config.in > +++ b/package/docker-engine/Config.in > @@ -16,6 +16,7 @@ config BR2_PACKAGE_DOCKER_ENGINE_DAEMON > default y > depends on BR2_USE_MMU # docker-containerd > select BR2_PACKAGE_DOCKER_CONTAINERD # runtime dependency > + select BR2_PACKAGE_DOCKER_PROXY # runtime dependency > select BR2_PACKAGE_IPTABLES # runtime dependency > select BR2_PACKAGE_SQLITE # runtime dependency > help >
Arnout, On Tue, Jun 13, 2017 at 9:37 AM, Arnout Vandecappelle <arnout@mind.be> > In fact, the same consideration goes for the other runtime dependencies of > docker-engine. containerd is probably pretty much unavoidable, but are iptables > and sqlite always needed, or only for certain features? Please see this patch series and review it first, in light of what you're suggesting here: - https://patchwork.ozlabs.org/patch/760397/ - https://patchwork.ozlabs.org/patch/760394/ - https://patchwork.ozlabs.org/patch/760395/ Sqlite is not required at all, afaik, and I will run some tests today to see if disabling it breaks Docker (it probably won't). iptables is definitely required, I wouldn't make that optional, just because Docker does a lot of network abstraction internally with it, and would very likely break completely without it. Best, Christian
diff --git a/package/docker-engine/Config.in b/package/docker-engine/Config.in index 05670a7..8feb11b 100644 --- a/package/docker-engine/Config.in +++ b/package/docker-engine/Config.in @@ -16,6 +16,7 @@ config BR2_PACKAGE_DOCKER_ENGINE_DAEMON default y depends on BR2_USE_MMU # docker-containerd select BR2_PACKAGE_DOCKER_CONTAINERD # runtime dependency + select BR2_PACKAGE_DOCKER_PROXY # runtime dependency select BR2_PACKAGE_IPTABLES # runtime dependency select BR2_PACKAGE_SQLITE # runtime dependency help
docker-proxy is needed by docker-engine at runtime, and was 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> --- package/docker-engine/Config.in | 1 + 1 file changed, 1 insertion(+)