• devex #169 July 2019, devex #172 Sep 2019, devex #171 Aug 2019, devex #173 Oct 2019, devex #174 Oct 2019, devex #175 Nov 2019, devex #176 Nov/Dec 2019
    • 13
    • Hide

      From https://issues.jboss.org/browse/JBIDE-24501 :

      1. ASSERT: have the CDK with the docker registry:
        • docker-registry addon must be enabled, applied
        • docker registry has to be registered as insecure registry (otherwise push will fail)
      2. ASSERT: have a project with a docker file in your workspace (ex. clone git@github.com:redhat-helloworld-msa/hola.git)
      3. ASSERT: have a connection to the docker daemon in the CDK3
      4. EXEC: in package explorer: select your Dockerfile and pick Run As > Docker Image Build. Provide some image name and version, pick Docker Connection to the docker daemon in the CDK
      5. EXEC: once the image is built, go to "Docker Explorer", select the Docker image that you built and select "Deploy to OpenShift..."
      6. EXEC: In deploy docker image wizard: check "Push Image to Registry" and finish the wizard
        • if the "Image Registry URL: " is not informed, fetch it form command line:
          $ minishit openshift registry
          docker-registry-default.192.168.64.91.nip.io
          

          Use this hostname, prepend *https://* to it

      7. ASSERT: once the push is finished, the freshly pushed image should show up in the Docker explorer
      8. EXEC: in "Docker Explorer": select this image and pick "Deploy to OpenShift..."
      9. ASSERT: "Deploy Docker Image" wizard shows up, having "Image Name" set to your Docker image with the docker registry prefix
      10. EXEC: select different project && select "Push Image to registry"
        ASSERT: Error dialog shows up: "No Docker image named 172.30.1.1:5000/test/hola:latest could be found"

      Screencast: https://youtu.be/JolnbsW1lTw

      Show
      From https://issues.jboss.org/browse/JBIDE-24501 : ASSERT: have the CDK with the docker registry: docker-registry addon must be enabled, applied docker registry has to be registered as insecure registry (otherwise push will fail) ASSERT: have a project with a docker file in your workspace (ex. clone git@github.com:redhat-helloworld-msa/hola.git) ASSERT: have a connection to the docker daemon in the CDK3 EXEC: in package explorer: select your Dockerfile and pick Run As > Docker Image Build. Provide some image name and version, pick Docker Connection to the docker daemon in the CDK EXEC: once the image is built, go to "Docker Explorer", select the Docker image that you built and select "Deploy to OpenShift..." EXEC: In deploy docker image wizard: check "Push Image to Registry" and finish the wizard if the "Image Registry URL: " is not informed, fetch it form command line: $ minishit openshift registry docker-registry- default .192.168.64.91.nip.io Use this hostname, prepend * https://* to it ASSERT: once the push is finished, the freshly pushed image should show up in the Docker explorer EXEC: in "Docker Explorer": select this image and pick "Deploy to OpenShift..." ASSERT: "Deploy Docker Image" wizard shows up, having "Image Name" set to your Docker image with the docker registry prefix EXEC: select different project && select "Push Image to registry" ASSERT: Error dialog shows up: "No Docker image named 172.30.1.1:5000/test/hola:latest could be found" Screencast: https://youtu.be/JolnbsW1lTw

      Exception in Error log:

      Failed to inspect image: '172.30.1.1:5000/test/hola:latest'
      
      com.spotify.docker.client.exceptions.ImageNotFoundException: Image not found: 172.30.1.1:5000/test/hola:latest
      	at com.spotify.docker.client.DefaultDockerClient.inspectImage(DefaultDockerClient.java:1330)
      	at org.eclipse.linuxtools.internal.docker.core.DockerConnection.getImageInfo(DockerConnection.java:896)
      	at org.jboss.tools.openshift.internal.ui.wizard.deployimage.DeployImageWizardModel.lookupImageMetadata(DeployImageWizardModel.java:655)
      	at org.jboss.tools.openshift.internal.ui.wizard.deployimage.DeployImageWizardModel.initializeContainerInfo(DeployImageWizardModel.java:354)
      	at org.jboss.tools.openshift.internal.ui.wizard.deployimage.DeployImagePage$1ImageValidatorJob.run(DeployImagePage.java:154)
      	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
      Caused by: com.spotify.docker.client.exceptions.DockerRequestException: Request error: GET https://192.168.42.121:2376/images/172.30.1.1:5000/test/hola:latest/json: 404
      	at com.spotify.docker.client.DefaultDockerClient.propagate(DefaultDockerClient.java:2084)
      	at com.spotify.docker.client.DefaultDockerClient.request(DefaultDockerClient.java:2023)
      	at com.spotify.docker.client.DefaultDockerClient.inspectImage(DefaultDockerClient.java:1326)
      	... 5 more
      Caused by: javax.ws.rs.NotFoundException: HTTP 404 Not Found
      	at org.glassfish.jersey.client.JerseyInvocation.convertToException(JerseyInvocation.java:1008)
      	at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:816)
      	at org.glassfish.jersey.client.JerseyInvocation.access$700(JerseyInvocation.java:92)
      	at org.glassfish.jersey.client.JerseyInvocation$5.completed(JerseyInvocation.java:773)
      	at org.glassfish.jersey.client.ClientRuntime.processResponse(ClientRuntime.java:198)
      	at org.glassfish.jersey.client.ClientRuntime.access$300(ClientRuntime.java:79)
      	at org.glassfish.jersey.client.ClientRuntime$2.run(ClientRuntime.java:180)
      	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
      	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
      	at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
      	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:340)
      	at org.glassfish.jersey.client.ClientRuntime$3.run(ClientRuntime.java:210)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      
      
      eclipse.buildId=11.1.0.AM1-v20170824-1835-B873
      java.version=1.8.0_141
      java.vendor=Oracle Corporation
      BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
      Framework arguments:  -product com.jboss.devstudio.core.product
      Command-line arguments:  -os linux -ws gtk -arch x86_64 -product com.jboss.devstudio.core.product
      
      

            [JBIDE-24899] Deploy Docker Image wizard: Image not found

            jjohnstn great news, thanks a lot! I'll give it a try in upcoming sprints.

            André Dietisheim added a comment - jjohnstn great news, thanks a lot! I'll give it a try in upcoming sprints.

            I have posted a patch for Docker Tooling core that will allow a tag specifying a registry if there is an image with such a tag in the local registry. I don't have access to the CDK code so this will just get past the image not found exception that was once shown. The image info will be returned successfully from getImageInfo(). The patch will be found in Linux Tools 2019-12 RC1 to be released next week.

            Jeff Johnston added a comment - I have posted a patch for Docker Tooling core that will allow a tag specifying a registry if there is an image with such a tag in the local registry. I don't have access to the CDK code so this will just get past the image not found exception that was once shown. The image info will be returned successfully from getImageInfo(). The patch will be found in Linux Tools 2019-12 RC1 to be released next week.

            Hi Andre, while I don't have access to your code, I think I may know the problem. The registry info is only supposed to be used for pushing and pulling (e.g. we need to tag with the registry ahead of a push when pushing to another registry). Using the full-blown registry as part of the name is confusing docker-client for local actions such as getImageInfo(). My suggestion would be to find the image in DockerExplorer's tree (this should be available in the call to the Wizard/dialog from the user selecting it). Once you have the image, you should be able to use its id instead of the "tag with registry" to call getImageInfo(). If pushing to registry you will need to construct a new tag for the push that has the registry plus the desired repo/image name but I'm guessing your code already does that directly or indirectly.

            Jeff Johnston added a comment - Hi Andre, while I don't have access to your code, I think I may know the problem. The registry info is only supposed to be used for pushing and pulling (e.g. we need to tag with the registry ahead of a push when pushing to another registry). Using the full-blown registry as part of the name is confusing docker-client for local actions such as getImageInfo(). My suggestion would be to find the image in DockerExplorer's tree (this should be available in the call to the Wizard/dialog from the user selecting it). Once you have the image, you should be able to use its id instead of the "tag with registry" to call getImageInfo(). If pushing to registry you will need to construct a new tag for the push that has the registry plus the desired repo/image name but I'm guessing your code already does that directly or indirectly.

            André Dietisheim added a comment - - edited

            turns out that my ISP is at fault, DNS nip.io hostname lookups dont work, once I'm on VPN lookups work.

            docker login -u developer -p `oc whoami -t` docker-registry-default.192.168.64.91.nip.io
            WARNING! Using --password via the CLI is insecure. Use --password-stdin.
            Login Succeeded
            

            André Dietisheim added a comment - - edited turns out that my ISP is at fault, DNS nip.io hostname lookups dont work, once I'm on VPN lookups work. docker login -u developer -p `oc whoami -t` docker-registry- default .192.168.64.91.nip.io WARNING! Using --password via the CLI is insecure. Use --password-stdin. Login Succeeded

            André Dietisheim added a comment - - edited

            i absolutely unable to have my cdk serving the internal docker registry to the outside world. After registering it as insecure registry, it keeps responding to requests by "Service Unavailable":

            steps:

            • EXEC: apply registry-route addon: minishift addons registry-route apply & restart cdk
            • EXEC: verify that the registry is served via a route: minishift openshift registry
            • EXEC: try to login to the docker registry:
              $ docker login -u developer -p `oc whoami -t` docker-registry-default.192.168.64.91.nip.io
              WARNING! Using --password via the CLI is insecure. Use --password-stdin.
              Error response from daemon: Get https://docker-registry-default.192.168.64.91.nip.io/v2/: Service Unavailable
              

            verify things:

            • registry service exists: oc get svc docker-registry -n default -o=json
            • route exists: oc get route -n default docker-registry -o=json
            • pod is running: oc get pod -n default docker-registry-1-ndqjp

            André Dietisheim added a comment - - edited i absolutely unable to have my cdk serving the internal docker registry to the outside world. After registering it as insecure registry, it keeps responding to requests by "Service Unavailable": steps: EXEC: apply registry-route addon: minishift addons registry-route apply & restart cdk EXEC: verify that the registry is served via a route: minishift openshift registry EXEC: try to login to the docker registry: $ docker login -u developer -p `oc whoami -t` docker-registry- default .192.168.64.91.nip.io WARNING! Using --password via the CLI is insecure. Use --password-stdin. Error response from daemon: Get https: //docker-registry- default .192.168.64.91.nip.io/v2/: Service Unavailable verify things: registry service exists: oc get svc docker-registry -n default -o=json route exists: oc get route -n default docker-registry -o=json pod is running: oc get pod -n default docker-registry-1-ndqjp

            adietish@redhat.com Maybe I wanted to push same image into 2 different projects...

            Josef Kopriva added a comment - adietish@redhat.com Maybe I wanted to push same image into 2 different projects...

            jkopriva@redhat.com I know that this is a very old issue, but do you remember why you had to select a different project when pushing?

            André Dietisheim added a comment - jkopriva@redhat.com I know that this is a very old issue, but do you remember why you had to select a different project when pushing?

            jkopriva@redhat.com compared to the steps in JBIDE-24501 you select a different project when pushing for the 2nd time. Is there any specific reason for this?

            André Dietisheim added a comment - jkopriva@redhat.com compared to the steps in JBIDE-24501 you select a different project when pushing for the 2nd time. Is there any specific reason for this?

            jmaury@redhat.com I vaguely remember you telling me that this was expected. Can you please refresh my mind about the reasons?

            André Dietisheim added a comment - jmaury@redhat.com I vaguely remember you telling me that this was expected. Can you please refresh my mind about the reasons?

            Can you see the Image with the label in the Docker Images View? If yes, when you click on it, does the Properties View Inspect tab show anything?

            Jeff Johnston added a comment - Can you see the Image with the label in the Docker Images View? If yes, when you click on it, does the Properties View Inspect tab show anything?

              Unassigned Unassigned
              jkopriva@redhat.com Josef Kopriva
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated: