오늘 AWS에 있는 EC2에서 발생했던 오류에 대한 기록입니다. 새로운 서비스를 배포하기 위해 Docker Registry에 로그인하는데, 처음 보는 에러가 났습니다. ( Dockerhub는 아니고, 사설로 운영하는 것입니다. 그리고 OS는 Ubuntu입니다. )
docker login
Username: bitlog
Passworld:
Error saving credentials: error storing credentials - err: exit status 1, out: 'Cannot autolaunch D-Bus without X11 $DISPLAY'
에러 메시지를 검색해보니, 이미 이런 에러를 겪은 사람들이 많았다는 것에 안도했습니다. 에러에 대한 결과가 많다는 것은 이미 해결책이 있을 가능성도 많다는 의미로 생각할 수 있으니까요.
역시나 조금 찾아보니 해결책이 있었습니다.
글에 있던대로 gnupg2와 pass를 설치하고 나서는 정상적으로 로그인할 수 있었습니다.
$ apt-get install gnupg2 pass
Reding package lists... Done
...
$ docker login
Username: bitlog
Password:
Login Succeeded
관련해서 어떤 문제가 있었는지 궁금해서 해당 이슈를 좀 더 읽어보니 아래에 Docker 운영자가 달아놓은 답변이 있습니다.
headless로 설치한 OS에서는 패스워드를 저장하기 위한 secretservice가 동작하지 않으므로, pass라는 저장소를 설치하여 우회할 수 있다는 내용이었습니다.
처음 보는 에러 메시지에 당황했지만, 다행히도 쉽게 문제를 해결할 수 있었습니다. 처음 이슈가 보고되고 제대로 된 답변이 달리기까지 1년도 넘게 걸렸지만, ( 그 사이에 다른 대안도 많이 있었습니다. ) 이렇게 라도 해결될 수 있는 것이 오픈소스의 힘이 아닐까 생각합니다. "만약 상용 솔루션이었다면 그건 우리의 지원범위가 아닙니다." 라던가, "우리 쪽에서는 재현되지 않는 문제입니다."라고 넘어가고 아무 일 없었다는 듯 잠수함 패치를 진행하지 않았을까 싶네요.