Inedo Community Forums Forums
    • Recent
    • Tags
    • Popular
    • Login

    Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

    If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

    Still cannot push Windows Docker image to ProGet

    Scheduled Pinned Locked Moved Support
    10 Posts 2 Posters 21 Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N Offline
      niklas.nilsson_8133
      last edited by

      Re: Can't push docker image to proget

      It doesn't seem to be currently possible to push Windows containers to a Docker Registry. Or am I mistaken here?

      Best,
      Nik

      1 Reply Last reply Reply Quote 0
      • atrippA Offline
        atripp inedo-engineer
        last edited by

        Hi Nik, ProGet does indeed support pushing Windows containers.

        What sort of errors are you receiving?

        1 Reply Last reply Reply Quote 0
        • N Offline
          niklas.nilsson_8133
          last edited by niklas.nilsson_8133

          So, after some further testing, I am able to push a small image based on windows-server-nano to my repository. But when I try to push a larger image I get "unauthorized: authentication required" after a while. Some layers succeed in pushing, but when I get to a larger layer it seems to stall.

          PS C:\Program Files> docker push servername/registryname/imagename:tagname
          The push refers to repository [servername/registryname/imagename]
          73db119f1423: Pushed
          39017a61fb52: Pushed
          246da8a4d4c9: Pushed
          a114056875fb: Pushed
          9f99dd0b742e: Pushed
          495c9abcf140: Pushed
          63dc895b2a27: Pushed
          d3dc3d141977: Pushed
          5b7901df17bd: Pushed
          3e1a4631d6cf: Pushing [==================================================>] 13.15GB/13.15GB
          7526e29ba0ea: Pushed
          b3bc068f2de5: Pushed
          1fd88f70cb45: Pushed
          1c5d24ff49f1: Pushed
          bfd396c19d59: Pushing [==================================================>] 1.081GB
          aa6445a500cd: Pushing [==================================================>] 890.4MB
          cb4a90dd60da: Skipped foreign layer
          bf16baf8d810: Skipped foreign layer
          unauthorized: authentication required

          Worth noting also, that if I subsequently try to push a smaller image again (without performing "docker login"), the push succeeds.

          Any idea why that might be?

          Best,

          1 Reply Last reply Reply Quote 0
          • atrippA Offline
            atripp inedo-engineer
            last edited by

            I think this is related to the foreign layer. This is a known issue, it's actually not an "error", but "by design" of Docker.

            https://medium.com/@amlys/solution-docker-push-fails-with-skipping-foreign-layer-a119e03bdf0d

            I think this will fix it.

            1 Reply Last reply Reply Quote 0
            • N Offline
              niklas.nilsson_8133
              last edited by niklas.nilsson_8133

              Indeed, foreign layers is skipped for Windows containers for licensing reasons. I actually get the same "Foreign layer skipped" message when pushing nano, but the push succeeds, so I have doubts that it is connected to this. But I will test and get back in a few. See:

              The push refers to repository [servername/registryname/nano]
              e286a695fd3a: Skipped foreign layer
              bc06b22070cd: Skipped foreign layer
              tagname: digest: sha256:25c9ca4a8429b4afeba7bcbe06f2651c8a709a9d0f58b152fc1a0e81ab5f33b1 size: 1098

              1 Reply Last reply Reply Quote 0
              • N Offline
                niklas.nilsson_8133
                last edited by niklas.nilsson_8133

                Hello!

                So I've finally had time to verify this, and yes, the large image fails to push but the small image succeeds to push, even with the allow-nondistributable-artifacts option set.

                Any ideas on how to continue from here?

                Best,
                Nik

                1 Reply Last reply Reply Quote 0
                • atrippA Offline
                  atripp inedo-engineer
                  last edited by

                  Hi Nik;

                  There's nothing in ProGet that would yield this behavior, and it's not behavior that others experience, so I think it must be something between ProGet and your workstation. Maybe proxy server, request filtering, etc.?

                  Just to check, you are using chunked uploads with Docker, right? It's been the default for years, but i guess it can still be disabled. The same intermediate server may be stripping out ProGet's support of chunks? I don't know -- https://github.com/docker/distribution/blob/master/docs/spec/api.md#chunked-upload

                  We've also had reports of strange errors happening on random blobs from one or two customers. They discovered it was the Request Filtering feature enabled in IIS. The error was different, and it had to do with blocking query strings with :’s in them. But maybe it's this?

                  hope this helps

                  1 Reply Last reply Reply Quote 0
                  • N Offline
                    niklas.nilsson_8133
                    last edited by

                    Hi,

                    So there's no chance a push could time-out if it takes a very long time or something like that? And yes, using default settings for chunked uploads, etc. It seems to only happen with very large images that take multiple hours to push.

                    Best,
                    Nik

                    1 Reply Last reply Reply Quote 0
                    • atrippA Offline
                      atripp inedo-engineer
                      last edited by

                      ni Nik,

                      There could certainly be a timeout... but if that were the case, it wouldn't be causing an "authentication" error.

                      You can check errors in ProGet, Admin > Diagnostic Center, perhaps something is logged? If not, then ProGet isn't making the error.

                      We have seen intermediate servers (proxy, traffic shaping, etc), terminate long-running connections and return a strange/inappropriate error (i.e. something other than Gateway Timeout) to the client. It's really hard to guess. You can install an intermediate tool, like Fiddler or Wireshark, to capture traffic from your workstation. Maybe the raw traffic will give you a better clue.

                      1 Reply Last reply Reply Quote 0
                      • N Offline
                        niklas.nilsson_8133
                        last edited by

                        @atripp said in Still cannot push Windows Docker image to ProGet:

                        install an intermediate tool, like Fiddler or Wireshark, to capture traffic from your workstation. Maybe the raw traffic will give you a better clue.

                        Hey.

                        No errors that seem relevant in the Diagnostic Center. I'll try to set up Fiddler and see if I can go from there.

                        1 Reply Last reply Reply Quote 0

                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                        With your input, this post could be even better 💗

                        Register Login
                        • 1 / 1
                        • First post
                          Last post
                        Inedo Website Home • Support Home • Code of Conduct • Forums Guide • Documentation