Welcome to the Linux Foundation Forum!

Getting "docker: not found" when trying to build in Lab6

I've confirmed that bothe docker services are running (docker:dind, and jenkins). I also made sure that both plugins are installed (Docker pipeline and Docker plugin). but everytime it runs it failed to build, and I get:

/var/jenkins_home/workspace/docker-pipe-01@tmp/durable-5067c421/script.sh.copy: 1: docker: not found
or
/var/jenkins_home/workspace/_worker-pipe_feature_dockerbuild@tmp/durable-d8576d0c/script.sh.copy: 1: docker: not found

depending on what part of the lab I try

Comments

  • zacts
    zacts Posts: 25

    I'm getting a similar error for lab6:

    WorkflowScript: 3: Invalid agent type "docker" specified. Must be one of [any, label, none] @ line 3, column 9.
    docker {
    ^

    1 error

    I have installed both the Docker and Docker-Pipeline plugins.

  • zacts
    zacts Posts: 25

    I just got it to build. I had to restart Jenkins after installing the Docker and Docker-Pipeline plugins.

  • luisviveropena
    luisviveropena Posts: 1,214

    Hi @jcasanas,

    It seems that error is associated to both plugins, Docker and Docker-Pipeline. So, when one of them is missing, or Jenkins isn't recognizing or finding it, it will give that error. So, try restarting Jenkins (as @zacts did) and check again.

    Regards,
    Luis.

  • jcasanas
    jcasanas Posts: 7

    I've restarted jenkins and I've restarted the docker containers and I still get the same

  • zacts
    zacts Posts: 25

    I manually restarted jenkins, not via docker. https://stackoverflow.com/questions/8072700/how-to-restart-jenkins-manually. @jcasanas I don't know if this might help. I did http://localhost:8080/safeRestart.

  • luisviveropena
    luisviveropena Posts: 1,214

    Hi @jcasanas and @zacts,

    Yes, it can be restarted from a URL and also from the command line. So, the command that @zacts mentioned will wait until all the jobs are finished, and then it will restart:

    http://localhost:8080/safeRestart

    If that doesn't work, you can try this one:

    http://localhost:8080/restart

    Regards,
    Luis.

  • jcasanas
    jcasanas Posts: 7

    that's exactly what I did first,the manual jenkins restart using both saferestart and restart and after that failed then I restarted the docker containers too

  • jcasanas
    jcasanas Posts: 7

    I've now done the following:

    • uninstalled all docker plug-ins in jenkins
    • restarted jenkins via http://<host>/restart
    • installed docker plugin and restarted jenkins
    • installed docker pipeline and restarted jenkins
    • ran the build manually and I'm still getting the same error
    + docker inspect -f . maven:3.9.8-sapmachine-21
    /var/jenkins_home/workspace/_worker-pipe_feature_dockerbuild@tmp/durable-21303b26/script.sh.copy: 1: docker: not found 
    
    • I've checked the docker-compose.yml file and everything looks correct
    • I did a docker compose down
    • changed DOCKER_HOST environment for the jenkins service from tcp://docker:2376 to tcp://localhost:2376
    • brought back up the stack
    • uninstalled all the docker plug-ins
    • re-installed docker plug-ins
    • ran build and got the same error
    • brought back down the stack
    • changed docker host env for jenkins service to tcp://0.0.0.0:2376
    • brought back up the stack
    • ran build and it failed
    • un-installed and re-installed the docker plug-ins and restarted jenkins
    • ran the build and it still fails
    • I shelled into the jenkins container with root and installed netcat
    • ran nc -vc <dind ip> 2376 and succeeded showing that the post is open
    • I was also able to ping and resolve the docker network ip for the dnd container

    @luisviveropena any other Ideas you might have for me, I've ran out of ideas and I was able to confirm that the jenkins container is able to talk to the dind container over the docker port 2376

  • luisviveropena
    luisviveropena Posts: 1,214

    Hi @jcasanas, what Jenkins version are you running?
    I'll recreate the environment and do the test.

    Regards,
    Luis.

  • jcasanas
    jcasanas Posts: 7

    Jenkins 2.463

  • jcasanas
    jcasanas Posts: 7

    @luisviveropena have you been able to recreate the environment. also to make sure that the dind container has docker running apropriatly I shelled into it and ran docker run hello-world. It ran without a problem

  • jcasanas
    jcasanas Posts: 7

    SOLVED

    I figured out what it was, It was the docker-compose.yml file and how it built the Jenkins service. I relooked at the compose file and noticed that it has it to build the Jenkins service both with a Dockerfile and using an image... see below

    services:
      jenkins:
        image: jenkins/jenkins:2.463-jdk17
        build:
          context: .
          dockerfile: Dockerfile
        ports:
          - 8080:8080
          - 50000:50000
        environment:
          - DOCKER_HOST=tcp://docker:2376
          - DOCKER_CERT_PATH=/certs/client
          - DOCKER_TLS_VERIFY=1
        networks:
          - lfs261
        hostname: jenkins
        privileged: true
        restart: always
        volumes:
          - jenkins-data:/var/jenkins_home
          - jenkins-docker-certs:/certs/client:ro
        depends_on:
          - docker
    

    so I brought it back down and commented out image: jenkins/jenkins:2.463-jdk17 from the compose file and brought the services back up. I forced a build both for the lab and for the docker-pipe-01 project and they now both ran without a problem. I looks like because the service had both to be build from an image and a Dockerfile it got confused, so now it's only building from the Dockerfile and all looks good now.

  • luisviveropena
    luisviveropena Posts: 1,214

    Hi @jcasanas,

    I'm glad you found the issue and a workaround! I'm building the infrastructure from some labs before, so it will take me some time.

    Regards,
    Luis.

Categories

Upcoming Training