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

環境


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

状況


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

1
Preparing services...
2
Starting services...
3
Configuring GitLab...
4
...
5
  * link[/opt/gitlab/embedded/service/gitlab-shell/.gitlab_shell_secret] action create (up to date)
6
  * execute[/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions] action run
7
    [execute] error: could not open /var/opt/gitlab/.ssh/authorized_keys: Permission denied @ rb_sysopen - /var/opt/gitlab/.ssh/authorized_keys
8
              -rw------- 1 1001 1001 2080 Nov 19 01:05 /var/opt/gitlab/.ssh/authorized_keys
9
10
    ================================================================================
11
    Error executing action `run` on resource 'execute[/opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions]'
12
    ================================================================================
13
14
    Mixlib::ShellOut::ShellCommandFailed
15
    ------------------------------------
16
    Expected process to exit with [0], but received '1'
17
    ---- Begin output of /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions ----
18
    STDOUT: error: could not open /var/opt/gitlab/.ssh/authorized_keys: Permission denied @ rb_sysopen - /var/opt/gitlab/.ssh/authorized_keys
19
    -rw------- 1 1001 1001 2080 Nov 19 01:05 /var/opt/gitlab/.ssh/authorized_keys
20
    STDERR:
21
    ---- End output of /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions ----
22
    Ran /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions returned 1

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

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

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

追記

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