gitlab의 registry에 빌드한 docker image를 push하려는데 아래와 같은 오류가 발생했다.
$ docker push registry.example.com/test/image Using default tag: latest The push refers to repository [registry.example.com/test/image] 68062ef20672: Pushing 32.91MB/32.91MB c1be1566dcab: Pushing 87.04kB edb3c64b3c34: Pushing 32.39MB/32.39MB e9638bebbcee: Pushing 28.16kB 3e047053df1e: Pushing 16.9kB 61de46f52718: Waiting 311fb62a7857: Waiting b5360ddea06a: Waiting f86570a2e020: Waiting 7ccfd1790eef: Waiting d2e5ef142830: Waiting 1b7fc168f886: Waiting 6674a01f7b84: Waiting 4a7f7177330e: Waiting 05c47c6acc4c: Waiting b02dd59d34c0: Waiting 0b800261971d: Waiting 16e3ab2d4dee: Waiting fbd7d5451c69: Waiting 4fc242d58285: Waiting unknown blob
해당 오류는 nginx에서 registry를 subdomain으로 설정하면서 생긴 문제인데 애초에 nginx의 config 설정을 잘 했다면 보지 못했을 에러다.
필자의 경우 registry의 subdomain을 아래처럼 설정했다.
server { server_name registry.example.com; proxy_set_header X-Forwarded-For $remote_addr; location / { proxy_pass http://127.0.0.1:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_read_timeout 1200s; # used for view/edit office file via Office Online Server client_max_body_size 0; } ......
그런데 여기에 아래 설정을 추가하면 된다.
proxy_set_header X-Forwarded-Proto $scheme;