研究室のGitLabをfrom sourceからOmnibus packageに移行した.
そこでロゴ(狐)の差し替えをする際に少しハマり,スクリプトを書いたのでメモしておく.
7.13以上対応版
GitLab 7.13で,GitLabのロゴがオシャレになった.
- GitLab 7.13 released with a Customizable Project Dashboard and even better Approvals | GitLab
- Replace old logo with new one (f5e0e5c0) | Commits | GitLab.org / GitLab Community Edition | GitLab
この影響で,pngがsvgに差し替えられるなどの変更があったので,スクリプトを更新した.
svgの作成には,無料化されたMicrosoft Expression Design 4を使用した.
/opt/gitlab/embedded/service/gitlab-rails/app/assets/images/favicon.ico
-
/opt/gitlab/embedded/service/gitlab-rails/app/assets/images/logo.svg
(210x210px) /opt/gitlab/embedded/service/gitlab-rails/public/favicon.ico
-
/opt/gitlab/embedded/service/gitlab-rails/public/apple-touch-icon.png
(210x210px) -
/opt/gitlab/embedded/service/gitlab-rails/public/apple-touch-icon-precomposed.png
(210x210px) -
/opt/gitlab/embedded/service/gitlab-rails/public/logo.svg
(210x210px)
#!/bin/sh
sudo gitlab-ctl stop
sudo chown -R git:git /opt/gitlab/embedded/service/gitlab-rails/public/assets
sudo cp *.ico *.svg /opt/gitlab/embedded/service/gitlab-rails/app/assets/images/
sudo cp *.ico *.png *.svg /opt/gitlab/embedded/service/gitlab-rails/public/
sudo gitlab-rake assets:clean assets:precompile
sudo chown -R root:root /opt/gitlab/embedded/service/gitlab-rails/public/assets
sudo gitlab-ctl start
ロゴの差し替え方法
ロゴのpngの配置などは,Gitlabのロゴを差し替える - Qiitaに詳しく書かれている.
(今回使用したGitLab 7.9.1ではlogo-black.pngは不要なみたい.)
以下の2つのファイルを,適切なサイズの画像に差し替える.
/opt/gitlab/embedded/service/gitlab-rails/app/assets/images/brand_logo.png
/opt/gitlab/embedded/service/gitlab-rails/app/assets/images/logo-white.png
assets pipelineを更新する.ここでエラーが出て失敗した.
$ sudo gitlab-rake assets:precompile
rake aborted!
Errno::EACCES: Permission denied @ rb_sysopen - /opt/gitlab/embedded/service/gitlab-rails/public/assets/brand_logo-83a5201d76d99b08d6ee58076626a452.png
...
public/assets/
のownerがrootになっているのが原因のようだ.
解決方法
public/assets/
のownerをgitにしてからassets:precompile
し,元に戻すことにした.
GitLabの更新の度に作業するのは面倒なので,ShellScriptを書いた.
#!/bin/sh
sudo gitlab-ctl stop
sudo chown -R git:git /opt/gitlab/embedded/service/gitlab-rails/public/assets
sudo cp *.png /opt/gitlab/embedded/service/gitlab-rails/app/assets/images/
sudo gitlab-rake assets:clean assets:precompile
sudo chown -R root:root /opt/gitlab/embedded/service/gitlab-rails/public/assets
sudo gitlab-ctl start
以下のようにpngとスクリプトを配置して./update.sh
を実行すれば良い.
gitlab_logo
|-- brand_logo.png
|-- logo-white.png
|-- update.sh
おわりに
今後の研究室サーバの引き継ぎも考えて,Omnibusに移行しました.
gitlab:backup:create
して,MySQLからPostgreSQLに変換して,リストアするだけなので簡単ですね.
作業に当たり,下記を参考にしました.