Skip to content

Docker 18.09.7 nil pointer panic in builder-next/adapters/containerimage.(*cachedResolver).Resolve #1079

@NobodyXu

Description

@NobodyXu

I am using Docker version 18.09.7, build 2d0083d on raspbian buster, installed by adding debian buster’s mirror to my raspberry pi 3B+ and its linux kernel version is 4.19.57-v7+.

I ran the following Dockerfile in the build dir with command env DOCKER_BUILDKIT=1 docker build .:

# syntax=docker/dockerfile:experimental
FROM debian:buster AS base

USER root

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get dist-upgrade

RUN apt-get install -y less clang build-essential perl cmake ctags git findutils htop curl wget libmicrohttpd-dev ca-certificates automake autoconf

given that docker image ls -a shows no image, the command failed with following output:

 [+] Building 0.1s (2/3)
 => [internal] load build definition from Dockerfile                                                                                   0.1s
 => => transferring dockerfile: 38B                                                                                                    0.0s
 => [internal] load .dockerignore                                                                                                      0.0s
 => => transferring context: 2B                                                                                                        0.0s
 => resolve image config for docker.io/docker/dockerfile:experimental                                                                  0.0s
unexpected EOF

Edit:

journalctl _SYSTEMD_UNIT=docker.service:


Jul 16 15:42:24 raspberrypi dockerd[23085]: time="2019-07-16T15:42:24.092638991+10:00" level=info msg="parsed scheme: \"\"" module=grpc
Jul 16 15:42:24 raspberrypi dockerd[23085]: time="2019-07-16T15:42:24.092911750+10:00" level=info msg="scheme \"\" not registered, fallback to default scheme" module=grpc
Jul 16 15:42:24 raspberrypi dockerd[23085]: time="2019-07-16T15:42:24.093154874+10:00" level=info msg="ccResolverWrapper: sending new addresses to cc: [{ 0  <nil>}]" module=grpc
Jul 16 15:42:24 raspberrypi dockerd[23085]: time="2019-07-16T15:42:24.093226436+10:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Jul 16 15:42:24 raspberrypi dockerd[23085]: time="2019-07-16T15:42:24.093358311+10:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x1414c470, CONNECTING" module=grpc
Jul 16 15:42:24 raspberrypi dockerd[23085]: time="2019-07-16T15:42:24.093801226+10:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x1414c470, READY" module=grpc
Jul 16 15:42:24 raspberrypi dockerd[23085]: panic: runtime error: invalid memory address or nil pointer dereference
Jul 16 15:42:24 raspberrypi dockerd[23085]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x4 pc=0x8fb848]
Jul 16 15:42:24 raspberrypi dockerd[23085]: goroutine 254 [running]:
Jul 16 15:42:24 raspberrypi dockerd[23085]: sync/atomic.addUint64(0x143ac28c, 0x1, 0x0, 0x13caf710, 0x0)
Jul 16 15:42:24 raspberrypi dockerd[23085]:         /usr/local/go/src/sync/atomic/64bit_arm.go:31 +0x4c
Jul 16 15:42:24 raspberrypi dockerd[23085]: github.com/docker/docker/builder/builder-next/adapters/containerimage.(*cachedResolver).Resolve(0x143ac270, 0x24893b8, 0x14332ee0, 0x13caf710, 0x28, 0x28, 0x0, 0x0, 0x0, 0x0, ...)
Jul 16 15:42:24 raspberrypi dockerd[23085]:         /go/src/github.com/docker/docker/builder/builder-next/adapters/containerimage/pull.go:819 +0x44
Jul 16 15:42:24 raspberrypi dockerd[23085]: github.com/docker/docker/vendor/github.com/moby/buildkit/util/imageutil.Config(0x24893b8, 0x14332ee0, 0x13caf530, 0x28, 0x247f258, 0x143ac270, 0x758c3330, 0x13c9f4b8, 0x0, 0xffffffff, ...)
Jul 16 15:42:24 raspberrypi dockerd[23085]:         /go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/util/imageutil/config.go:50 +0x624
Jul 16 15:42:24 raspberrypi dockerd[23085]: github.com/docker/docker/builder/builder-next/adapters/containerimage.(*imageSource).resolveRemote.func1(0x24893b8, 0x14332ee0, 0x1635c01, 0x8c57d4, 0x142a60e4, 0x8fd87c)
Jul 16 15:42:24 raspberrypi dockerd[23085]:         /go/src/github.com/docker/docker/builder/builder-next/adapters/containerimage/pull.go:138 +0xd8
Jul 16 15:42:24 raspberrypi dockerd[23085]: github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol.(*call).run(0x143083c0)
Jul 16 15:42:24 raspberrypi dockerd[23085]:         /go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol/flightcontrol.go:116 +0x54
Jul 16 15:42:24 raspberrypi dockerd[23085]: github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol.(*call).(github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol.run)-fm()
Jul 16 15:42:24 raspberrypi dockerd[23085]:         /go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol/flightcontrol.go:142 +0x1c
Jul 16 15:42:24 raspberrypi dockerd[23085]: sync.(*Once).Do(0x143083f0, 0x14156c88)
Jul 16 15:42:24 raspberrypi dockerd[23085]:         /usr/local/go/src/sync/once.go:44 +0xc0
Jul 16 15:42:24 raspberrypi dockerd[23085]: created by github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol.(*call).wait
Jul 16 15:42:24 raspberrypi dockerd[23085]:         /go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol/flightcontrol.go:142 +0x158
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26+10:00" level=warning msg="Running experimental build"
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.626638800+10:00" level=info msg="User namespaces: ID ranges will be mapped to subuid/subgid ranges of: dockremap:dockremap"
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.638120733+10:00" level=info msg="User namespaces: ID ranges will be mapped to subuid/subgid ranges of: dockremap:dockremap"
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.640750305+10:00" level=info msg="parsed scheme: \"unix\"" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.640864315+10:00" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.641045721+10:00" level=info msg="parsed scheme: \"unix\"" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.641089471+10:00" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.642097904+10:00" level=info msg="ccResolverWrapper: sending new addresses to cc: [{unix:///run/containerd/containerd.sock 0  <nil>}]" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.642245924+10:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.642098321+10:00" level=info msg="ccResolverWrapper: sending new addresses to cc: [{unix:///run/containerd/containerd.sock 0  <nil>}]" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.642395090+10:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.642592486+10:00" level=info msg="blockingPicker: the picked transport is not ready, loop back to repick" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.642607538+10:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x13954160, CONNECTING" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.642727902+10:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x1380c020, CONNECTING" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.647605642+10:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x13954160, READY" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.647605799+10:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x1380c020, READY" module=grpc
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.660240279+10:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.669077796+10:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.670275968+10:00" level=warning msg="Your kernel does not support swap memory limit"
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.670450915+10:00" level=warning msg="Your kernel does not support cgroup cfs period"
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.670508780+10:00" level=warning msg="Your kernel does not support cgroup cfs quotas"
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.670564613+10:00" level=warning msg="Your kernel does not support cgroup rt period"
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.670620185+10:00" level=warning msg="Your kernel does not support cgroup rt runtime"
Jul 16 15:42:26 raspberrypi dockerd[23348]: time="2019-07-16T15:42:26.672410803+10:00" level=info msg="Loading containers: start."
Jul 16 15:42:28 raspberrypi dockerd[23348]: time="2019-07-16T15:42:28.520257644+10:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
Jul 16 15:42:29 raspberrypi dockerd[23348]: time="2019-07-16T15:42:29.040586750+10:00" level=info msg="Loading containers: done."
Jul 16 15:42:29 raspberrypi dockerd[23348]: time="2019-07-16T15:42:29.172152523+10:00" level=info msg="Docker daemon" commit=2d0083d graphdriver(s)=overlay2 version=18.09.7
Jul 16 15:42:29 raspberrypi dockerd[23348]: time="2019-07-16T15:42:29.172570281+10:00" level=info msg="Daemon has completed initialization"
Jul 16 15:42:29 raspberrypi dockerd[23348]: time="2019-07-16T15:42:29.242873176+10:00" level=info msg="API listen on /var/run/docker.sock"
Jul 16 15:43:36 raspberrypi dockerd[23348]: time="2019-07-16T15:43:36.716249991+10:00" level=info msg="parsed scheme: \"\"" module=grpc
Jul 16 15:43:36 raspberrypi dockerd[23348]: time="2019-07-16T15:43:36.716642438+10:00" level=info msg="scheme \"\" not registered, fallback to default scheme" module=grpc
Jul 16 15:43:36 raspberrypi dockerd[23348]: time="2019-07-16T15:43:36.717230977+10:00" level=info msg="ccResolverWrapper: sending new addresses to cc: [{ 0  <nil>}]" module=grpc
Jul 16 15:43:36 raspberrypi dockerd[23348]: time="2019-07-16T15:43:36.717407174+10:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Jul 16 15:43:36 raspberrypi dockerd[23348]: time="2019-07-16T15:43:36.717680402+10:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x13ffe090, CONNECTING" module=grpc
Jul 16 15:43:36 raspberrypi dockerd[23348]: time="2019-07-16T15:43:36.718333212+10:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x13ffe090, READY" module=grpc
Jul 16 15:43:36 raspberrypi dockerd[23348]: panic: runtime error: invalid memory address or nil pointer dereference
Jul 16 15:43:36 raspberrypi dockerd[23348]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x4 pc=0x870848]
Jul 16 15:43:36 raspberrypi dockerd[23348]: goroutine 271 [running]:
Jul 16 15:43:36 raspberrypi dockerd[23348]: sync/atomic.addUint64(0x1409366c, 0x1, 0x0, 0x13dc4fc0, 0x0)
Jul 16 15:43:36 raspberrypi dockerd[23348]:         /usr/local/go/src/sync/atomic/64bit_arm.go:31 +0x4c
Jul 16 15:43:36 raspberrypi dockerd[23348]: github.com/docker/docker/builder/builder-next/adapters/containerimage.(*cachedResolver).Resolve(0x14093650, 0x23fe3b8, 0x140b3460, 0x13dc4fc0, 0x28, 0x28, 0x0, 0x0, 0x0, 0x0, ...)
Jul 16 15:43:36 raspberrypi dockerd[23348]:         /go/src/github.com/docker/docker/builder/builder-next/adapters/containerimage/pull.go:819 +0x44
Jul 16 15:43:36 raspberrypi dockerd[23348]: github.com/docker/docker/vendor/github.com/moby/buildkit/util/imageutil.Config(0x23fe3b8, 0x140b3460, 0x13dc4ea0, 0x28, 0x23f4258, 0x14093650, 0x7477e5d0, 0x14096008, 0x0, 0xffffffff, ...)
Jul 16 15:43:36 raspberrypi dockerd[23348]:         /go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/util/imageutil/config.go:50 +0x624
Jul 16 15:43:36 raspberrypi dockerd[23348]: github.com/docker/docker/builder/builder-next/adapters/containerimage.(*imageSource).resolveRemote.func1(0x23fe3b8, 0x140b3460, 0x15aac01, 0x83a7d4, 0x1386ee64, 0x87287c)
Jul 16 15:43:36 raspberrypi dockerd[23348]:         /go/src/github.com/docker/docker/builder/builder-next/adapters/containerimage/pull.go:138 +0xd8
Jul 16 15:43:36 raspberrypi dockerd[23348]: github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol.(*call).run(0x13ce7360)
Jul 16 15:43:36 raspberrypi dockerd[23348]:         /go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol/flightcontrol.go:116 +0x54
Jul 16 15:43:36 raspberrypi dockerd[23348]: github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol.(*call).(github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol.run)-fm()
Jul 16 15:43:36 raspberrypi dockerd[23348]:         /go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol/flightcontrol.go:142 +0x1c
Jul 16 15:43:36 raspberrypi dockerd[23348]: sync.(*Once).Do(0x13ce7390, 0x14096a68)
Jul 16 15:43:36 raspberrypi dockerd[23348]:         /usr/local/go/src/sync/once.go:44 +0xc0
Jul 16 15:43:36 raspberrypi dockerd[23348]: created by github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol.(*call).wait
Jul 16 15:43:36 raspberrypi dockerd[23348]:         /go/src/github.com/docker/docker/vendor/github.com/moby/buildkit/util/flightcontrol/flightcontrol.go:142 +0x158
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39+10:00" level=warning msg="Running experimental build"
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.383369323+10:00" level=info msg="User namespaces: ID ranges will be mapped to subuid/subgid ranges of: dockremap:dockremap"
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.393847667+10:00" level=info msg="User namespaces: ID ranges will be mapped to subuid/subgid ranges of: dockremap:dockremap"
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.396396979+10:00" level=info msg="parsed scheme: \"unix\"" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.396572083+10:00" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.396790728+10:00" level=info msg="parsed scheme: \"unix\"" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.396834894+10:00" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.397782703+10:00" level=info msg="ccResolverWrapper: sending new addresses to cc: [{unix:///run/containerd/containerd.sock 0  <nil>}]" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.397934317+10:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.397782599+10:00" level=info msg="ccResolverWrapper: sending new addresses to cc: [{unix:///run/containerd/containerd.sock 0  <nil>}]" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.398084525+10:00" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.400933836+10:00" level=info msg="blockingPicker: the picked transport is not ready, loop back to repick" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.398096764+10:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x1518a750, CONNECTING" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.398213066+10:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x14d422e0, CONNECTING" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.402643673+10:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x14d422e0, READY" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.403431951+10:00" level=info msg="pickfirstBalancer: HandleSubConnStateChange: 0x1518a750, READY" module=grpc
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.415979037+10:00" level=info msg="[graphdriver] using prior storage driver: overlay2"
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.424669887+10:00" level=info msg="Graph migration to content-addressability took 0.00 seconds"
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.426025559+10:00" level=warning msg="Your kernel does not support swap memory limit"
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.426204569+10:00" level=warning msg="Your kernel does not support cgroup cfs period"
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.426261912+10:00" level=warning msg="Your kernel does not support cgroup cfs quotas"
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.426316808+10:00" level=warning msg="Your kernel does not support cgroup rt period"
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.426377224+10:00" level=warning msg="Your kernel does not support cgroup rt runtime"
Jul 16 15:43:39 raspberrypi dockerd[23490]: time="2019-07-16T15:43:39.428230758+10:00" level=info msg="Loading containers: start."
Jul 16 15:43:41 raspberrypi dockerd[23490]: time="2019-07-16T15:43:41.190706678+10:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
Jul 16 15:43:41 raspberrypi dockerd[23490]: time="2019-07-16T15:43:41.740015003+10:00" level=info msg="Loading containers: done."
Jul 16 15:43:41 raspberrypi dockerd[23490]: time="2019-07-16T15:43:41.878263616+10:00" level=info msg="Docker daemon" commit=2d0083d graphdriver(s)=overlay2 version=18.09.7
Jul 16 15:43:41 raspberrypi dockerd[23490]: time="2019-07-16T15:43:41.878795854+10:00" level=info msg="Daemon has completed initialization"
Jul 16 15:43:41 raspberrypi dockerd[23490]: time="2019-07-16T15:43:41.924573483+10:00" level=info msg="API listen on /var/run/docker.sock"

I tried to docker pull docker.io/docker/dockerfile:experimental before running the command again, and this time the output is:

[+] Building 1.1s (6/6) FINISHED
 => [internal] load build definition from Dockerfile                                                                                   0.1s
 => => transferring dockerfile: 38B                                                                                                    0.0s
 => [internal] load .dockerignore                                                                                                      0.0s
 => => transferring context: 2B                                                                                                        0.0s
 => resolve image config for docker.io/docker/dockerfile:experimental                                                                  0.0s
 => CACHED docker-image://docker.io/docker/dockerfile:experimental                                                                     0.0s
 => [internal] load build definition from Dockerfile                                                                                   0.0s
 => => transferring dockerfile: 474B                                                                                                   0.0s
 => [internal] load .dockerignore                                                                                                      0.0s
unexpected EOF

so I touched .dockerignore and tried again:

[+] Building 1.9s (6/7)
 => [internal] load .dockerignore                                                                                                      0.1s
 => => transferring context: 34B                                                                                                       0.0s
 => [internal] load build definition from Dockerfile                                                                                   0.1s
 => => transferring dockerfile: 38B                                                                                                    0.0s
 => resolve image config for docker.io/docker/dockerfile:experimental                                                                  0.0s
 => CACHED docker-image://docker.io/docker/dockerfile:experimental                                                                     0.0s
 => [internal] load build definition from Dockerfile                                                                                   0.6s
 => => transferring dockerfile: 38B                                                                                                    0.0s
 => [internal] load .dockerignore                                                                                                      0.0s
 => [internal] load metadata for docker.io/library/debian:buster                                                                       0.0s
unexpected EOF

after pulling debian:buster, it seemed that everything is all right at first, but still failed:

 [+] Building 381.2s (8/10)
 => [internal] load build definition from Dockerfile                                                                                   0.2s
 => => transferring dockerfile: 38B                                                                                                    0.0s
 => [internal] load .dockerignore                                                                                                      0.2s
 => => transferring context: 32B                                                                                                       0.0s
 => resolve image config for docker.io/docker/dockerfile:experimental                                                                  0.0s
 => CACHED docker-image://docker.io/docker/dockerfile:experimental                                                                     0.0s
 => [internal] load build definition from Dockerfile                                                                                   0.1s
 => => transferring dockerfile: 38B                                                                                                    0.0s
 => [internal] load .dockerignore                                                                                                      0.0s
 => [internal] load metadata for docker.io/library/debian:buster                                                                       0.0s
 => [1/3] FROM docker.io/library/debian:buster                                                                                         0.0s
 => => resolve docker.io/library/debian:buster                                                                                         0.0s
 => [2/3] RUN apt-get update && apt-get dist-upgrade                                                                                 378.7s
unexpected EOF

Also, when I tried to run a more advanced Dockerfile with detect-apt-proxy.sh:

detect-apt-proxy.sh:

#!/bin/bash -ex
# see:
# https://github.com/sameersbn/docker-apt-cacher-ng
# https://gist.github.com/dergachev/8441335

APT_PROXY_PORT=$1
HOST_IP=$(awk '/^[a-z]+[0-9]+\t00000000/ { printf("%d.%d.%d.%d\n", "0x" substr($3, 7, 2), "0x" substr($3, 5, 2), "0x" substr($3, 3, 2), "0x" substr($3, 1, 2)) }' < /proc/net/route)

if [[ ! -z "$APT_PROXY_PORT" ]] && [[ ! -z "$HOST_IP" ]]; then
    echo 'Acquire::HTTPS::Proxy "false";' >> /etc/apt/apt.conf.d/01proxy
    cat >> /etc/apt/apt.conf.d/01proxy <<EOL
    Acquire::HTTP::Proxy "http://${HOST_IP}:${APT_PROXY_PORT}";
    Acquire::HTTPS::Proxy "false";
EOL
    cat /etc/apt/apt.conf.d/01proxy
    echo "Using host's apt proxy"
else
    echo "No squid-deb-proxy detected on docker host"
fi

Dockerfile:

# syntax=docker/dockerfile:experimental
FROM debian:buster AS base

USER root

ENV DEBIAN_FRONTEND=noninteractive

# This code is adapted from:
#     https://gist.github.com/dergachev/8441335#gistcomment-2007024
## When installed using `apt install squid-deb-proxy`, it listens on port 8000 on the host by dfault.
ARG APT_PROXY_PORT=8000
COPY detect-apt-proxy.sh /root
RUN /root/detect-apt-proxy.sh ${APT_PROXY_PORT}


RUN apt-get update && apt-get dist-upgrade

RUN apt-get install -y less clang build-essential perl cmake ctags git findutils htop curl wget libmicrohttpd-dev ca-certificates automake autoconf

the build failed immediately with:

[+] Building 1.8s (9/14)
 => [internal] load build definition from Dockerfile                                                                                   0.1s
 => => transferring dockerfile: 681B                                                                                                   0.0s
 => [internal] load .dockerignore                                                                                                      0.2s
 => => transferring context: 34B                                                                                                       0.0s
 => resolve image config for docker.io/docker/dockerfile:experimental                                                                  0.0s
 => CACHED docker-image://docker.io/docker/dockerfile:experimental                                                                     0.0s
 => [internal] load .dockerignore                                                                                                      0.0s
 => [internal] load build definition from Dockerfile                                                                                   0.1s
 => => transferring dockerfile: 681B                                                                                                   0.0s
 => [internal] load metadata for docker.io/library/debian:buster                                                                       0.0s
 => [1/3] FROM docker.io/library/debian:buster                                                                                         0.0s
 => => resolve docker.io/library/debian:buster                                                                                         0.0s
 => [internal] load build context                                                                                                      0.0s
unexpected EOF

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions