GitLab Runner로 이미지를 GitLab Registry로 Push하던 중 unauthorized: authentication required 오류가 발생하였다.
docker push gitlab.example.com/myproject/docs:latest
The push refers to a repository [gitlab.example.com/myproject/docs]
630816f32edb: Preparing
530d5553aec8: Preparing
...
4b0bab9ff599: Waiting
d1c800db26c7: Waiting
42755cf4ee95: Waiting
unauthorized: authentication required
docker login도 잘 되어서 의아했는데 공식문서에 설명이 잘 되어있었다.
https://docs.gitlab.com/user/packages/container_registry/authenticate_with_container_registry/
Authenticate with the container registry | GitLab Docs
Help us learn about your current experience with the documentation. Take the survey. Authenticate with the container registry Tier: Free, Premium, UltimateOffering: GitLab.com, GitLab Self-Managed, GitLab Dedicated To authenticate with the container regist
docs.gitlab.com
GitLab에서 제공하는 GitLab Registry 토큰은 디폴트로 만료시간이 5분이라고 한다.
push하는데 5분이 넘게 걸리는 작업은 만료시간을 넘겨 unauthorized: authentication required 오류가 발생하는 것이다.
만료기간 늘려주는 방법은 아래와 같다.
1. Gitlab root 계정으로 접속하고 admin 페이지로 들어간다.
URL : https://< Gitlab URL>/admin
2. Settings > CI/CD > Container Registry > Authorization token duration (minutes) 시간 변경
참고자료
https://docs.gitlab.com/user/packages/container_registry/authenticate_with_container_registry/https://gitlab-docs.infograb.net/ee/administration/packages/container_registry.html?tab=%EC%86%8C%EC%8A%A4%EC%97%90%EC%84%9C+%EC%BB%B4%ED%8C%8C%EC%9D%BC%ED%95%9C+%28Self-compiled%29