以前も似たような問題にぶつかったのですが、以前とは異なる方法で解決したので手順など。

環境


  • 別サーバからrsyncで持ってきたGitLab
  • バージョンは11.4.0-ce
  • 公式のDockerイメージを使用

状況


そのままdocker-composeでupするとエラーを吐きまくる。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Preparing services...
Starting services...
Configuring GitLab...
...
* link[/opt/gitlab/embedded/service/gitlab-shell/.gitlab_shell_secret] action create (up to date)
* execute[/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions] action run
[execute] error: could not open /var/opt/gitlab/.ssh/authorized_keys: Permission denied @ rb_sysopen - /var/opt/gitlab/.ssh/authorized_keys
-rw------- 1 1001 1001 2080 Nov 19 01:05 /var/opt/gitlab/.ssh/authorized_keys

================================================================================
Error executing action `run` on resource 'execute[/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions]'
================================================================================

Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions ----
STDOUT: error: could not open /var/opt/gitlab/.ssh/authorized_keys: Permission denied @ rb_sysopen - /var/opt/gitlab/.ssh/authorized_keys
-rw------- 1 1001 1001 2080 Nov 19 01:05 /var/opt/gitlab/.ssh/authorized_keys
STDERR:
---- End output of /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions ----
Ran /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions returned 1

以前ダメだったこのDockerのリポジトリのドキュメントのやり方でイケました。ただし、コンテナは起動していなかったのでイメージを指定するようにしました。

1
2
sudo docker run <イメージID> update-permissions
sudo docker run <イメージID>

また、一行目のupdate-permissionsを実行してそのままdocker-compose upだとダメだったので、一旦別途、二行目のdocker runを実行しています。これで一回正常起動すれば後はdocker-compose upでも問題なく動作しました。う~ん、よくわからん…。

追記

実際の移行時は前述の方法がなぜかダメだったので、結局docker-composeで起動させた瞬間にdocker exec <コンテナID> update-permissionでも対応しました。