HiveBrain v1.2.0
Get Started
← Back to all entries
debugkubernetesMinor

docker build throws UnknownHostException with jenkins dind slave + kubernetes plugin

Submitted by: @import:stackexchange-devops··
0
Viewed 0 times
dinddockerwithjenkinsslavekubernetesthrowsunknownhostexceptionpluginbuild

Problem

So Jenkins is installed inside the cluster with this official helm chart. And this is my installed plugins as per helm release values:

installPlugins:
  - kubernetes:1.18.1
  - workflow-job:2.33
  - workflow-aggregator:2.6
  - credentials-binding:1.19
  - git:3.11.0
  - blueocean:1.19.0


my Jenkinsfile relies on the following pod template to spin up slaves:

kind: Pod
spec:
  # dnsConfig:
  #   options:
  #     - name: ndots
  #       value: "1"
  containers:
  - name: dind
    image: docker:19-dind
    command:
    - cat
    tty: true
    volumeMounts:
    - name: dockersock
      readOnly: true
      mountPath: /var/run/docker.sock
    resources:
      limits:
        cpu: 500m
        memory: 512Mi
  volumes:
  - name: dockersock
    hostPath: 
      path: /var/run/docker.sock


Slaves (pod /dind container) starts nicely as expected whenever there is new Build.

However, it broke at the step of "docker build" in ( Jenkinsfile pipeline
docker build -t ... ) and it breaks there :

```
Step 16/24 : RUN ../gradlew clean bootJar

---> Running in f14b6418b3dd

Downloading https://services.gradle.org/distributions/gradle-5.5-all.zip

Exception in thread "main" java.net.UnknownHostException: services.gradle.org

at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:220)

at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)

at java.base/java.net.Socket.connect(Socket.java:591)

at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:285)

at java.base/sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)

at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182)

at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)

at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)

at java.base/sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:265)

at java.base/sun.net.www.protoco

Solution

Found the answer here

Just add --network=host to docker build or docker run.

docker build --network=host foo/bar:latest .

Code Snippets

docker build --network=host foo/bar:latest .

Context

StackExchange DevOps Q#9146, answer score: 2

Revisions (0)

No revisions yet.