0

Suddenly we got a problem while pushing to our private registry a large docker image.

b09ec9b220b5: Pushing [=======================>                           ]  1.871GB/3.905GB // always interrupted when reached around 2.3GB/3.905GB
935138875f7e: Layer already exists 
844a98711e4c: Layer already exists 
f11fbff78593: Layer already exists 
cfe955540946: Layer already exists 
0e9af88280bb: Layer already exists 
08de5656e13a: Layer already exists 
5f70bf18a086: Layer already exists 
03825ee9b44a: Layer already exists 
407fdf993b55: Layer already exists 
315572e6ad81: Layer already exists 
44dda8402940: Layer already exists 
25972ffba58c: Layer already exists 
dc6462f7bb8b: Layer already exists 
a4db1a405763: Layer already exists 
9f4f964da727: Layer already exists 
49b333f7bad4: Layer already exists 
a463dbda4664: Layer already exists 
a9099c3159f5: Layer already exists

Traefik and registry run in docker swarm:

Traefik docker .yml file

version: '3.6'

services:
  traefik:
    image: traefik:2.9.6
    command:
      # - '--log.level=DEBUG'
      - '--api=true'
      - '--api.dashboard=true'
      - '--providers.docker.endpoint=unix:///var/run/docker.sock'
      - '--providers.docker.swarmMode=true'
      - '--providers.docker.exposedbydefault=false'
      - '--providers.docker.network=traefik-proxy'
      - '--entrypoints.web.address=:80'
      - '--entrypoints.websecure.address=:443'
      - '--certificatesresolvers.letsencryptresolver.acme.httpchallenge=true'
      - '--certificatesresolvers.letsencryptresolver.acme.httpchallenge.entrypoint=web'
      - '--certificatesresolvers.letsencryptresolver.acme.email=developer@domain.com'
      - '--certificatesresolvers.letsencryptresolver.acme.storage=/letsencrypt/acme.json'
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - acme-certs:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - traefik-proxy
    deploy:
      placement:
        constraints:
          - node.role == manager
      labels:
        - 'traefik.enable=true'
        # HTTP Catchall for redirecting HTTP -> HTTPS
        - 'traefik.http.routers.http-catchall.rule=PathPrefix(`/`)'
        - 'traefik.http.routers.http-catchall.entrypoints=web'
        - 'traefik.http.routers.http-catchall.middlewares=redirect-to-https'
        - 'traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https'
        # Traefik dashboard
        - 'traefik.http.routers.traefik.rule=Host(`traefik.domain.com`)'
        - 'traefik.http.routers.traefik.entrypoints=websecure'
        - 'traefik.http.routers.traefik.tls.certresolver=letsencryptresolver'
        - 'traefik.http.routers.traefik.service=api@internal'
        - 'traefik.http.services.api@internal.loadbalancer.server.port=8080'
        - 'traefik.http.routers.traefik.middlewares=traefik-auth'
        - 'traefik.http.middlewares.traefik-auth.basicauth.users=admin:$$2y$$10$$OwPg6oWN2iJk5Syde7yIt.tKebbZwtQkaPQ.0AaaaFjNIb1h8bJ6a'
      resources:
        limits:
          memory: "512M"

volumes:
  acme-certs:

networks:
  traefik-proxy:
    external: true

Registry docker .yml file

version: '3.4'

services:
  registry:
    image: registry:2.8.1
    ports:
      - "5000:5000"
    environment:
      - REGISTRY_AUTH=htpasswd
      - REGISTRY_STORAGE_DELETE_ENABLED=true
      - REGISTRY_AUTH_HTPASSWD_PATH=/httpasswd_storage/htpasswd
      - REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm
    volumes:
      - ./htpasswd_backup:/httpasswd_storage
      - registry-data:/var/lib/registry
    networks:
      - traefik-proxy
      - registry-ui-net
    deploy:
      labels:
        - 'traefik.enable=true'
        - 'traefik.docker.network=traefik-proxy'
        - "traefik.http.routers.registry.rule=Host(`registry1.domain.com`)"
        - 'traefik.http.routers.registry.entrypoints=websecure'
        - 'traefik.http.routers.registry.tls.certresolver=letsencryptresolver'
        - 'traefik.http.services.registry.loadbalancer.server.port=5000'

networks:
  traefik-proxy:
    external: true
  registry-ui-net:

volumes:
  registry-data:

There is no any errors in docker registry container logs. When I push this image from my local MacOS - it is endless but if it is pushed from Jenkins (which is on the same server with registry) - there are around 5 retries and then 500 error

VadOS
  • 41
  • 3
  • Possible duplicate: https://stackoverflow.com/q/75047989/596285 – BMitch Jan 13 '23 at 14:49
  • can be many things. Generally, it should work, we have the registry running behind traefik as well. Can you check traefik log (enable debug) same for registry. it should give you the reason where it failes on traefik or registry side. – Vad1mo Jan 14 '23 at 07:59
  • I have the same problem when I pull images from public registries (like docker hub) from behind a corporate proxy. All fine when I run the same from my home network on the same machine – Pablo Henkowski Apr 21 '23 at 18:00

0 Answers0