33
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker+GitLabでカスタムロゴ

Posted at

Dockerを使ってのGitLab試行では割と簡単にデプロイできたし、かなり有望な感じがするわけですが、やっぱり個人的にはロゴの目力が痛いわけです。

gitlab.png

そんな中、Gitlabのロゴを差し替える という記事を発見。
DockerならばDockerfileを作ればわかりやすくカスタムイメージ作れんじゃないか、みたいに思って書いてみたのでメモ。

今回の画像、Dockerfileなどは以下に置いてあります。
https://github.com/yacchin1205/docker-gitlab-customlogo

#描く

まずは描きます。オリジナルは、

original_logo.png

なんですけど、https://about.gitlab.com/about/ にSmart animalって文言が見えたので、ああ、ケモミミだな・・・と。
サイズ合わせて、こんな感じに。

yacchin1205_logo.png

別に疲れてないです。

##ファイルの準備

描いた絵をもとに、以下のファイルを作ります。

  • brand_logo.png
  • logo-black.png
  • logo-white.png
  • favicon.ico

サイズ、背景の透過などはリポジトリなど参照。
ツールは、お絵かきはSAI、画像加工はFireworksを使ってます。

#ビルドと実行

GitLabイメージ sameersbn/gitlab に対して、画像ファイルだけ差し替えるようなDockerfileを書きました。

使用方法はこんな感じ。

git clone https://github.com/yacchin1205/docker-gitlab-customlogo.git
cd docker-gitlab-customlogo/
docker build -t docker-gitlab-customlogo .

あとは、sameersbn/gitlab の代わりに、イメージ docker-gitlab-customlogo を指定してGitLabコンテナを起動すればよい。

##コマンド一発でコンテナ起動

先の記事の通り、

docker run --name='gitlab' -it --rm \
-e 'GITLAB_PORT=10080' -e 'GITLAB_SSH_PORT=10022' \
-p 10022:22 -p 10080:80 \
-v /var/run/docker.sock:/run/docker.sock \
-v $(which docker):/bin/docker \
docker-gitlab-customlogo

で、 http://(Dockerホストのアドレス):10080 をブラウザで開く。

gitlab-customlogo.png

うむ・・・!

##コンテナを1つ1つ起動

こちらも先の記事と同じ要領。

docker run --name gitlab-redis -d sameersbn/redis:latest
docker run --name gitlab-mysql -d -e 'DB_NAME=gitlabhq_production' -e 'DB_USER=gitlab' -e 'DB_PASS=password' -v /vagrant/gitlab/mysql:/var/lib/mysql sameersbn/mysql:latest
docker run -d -p 10080:80 -e 'GITLAB_PORT=10080' -e 'GITLAB_HOST=192.168.33.10' -v /vagrant/gitlab/git:/home/git/data --link gitlab-mysql:mysql --link gitlab-redis:redisio docker-gitlab-customlogo

なお、上記コマンドですでに一度起動したことがある場合/vagrant/gitlab/git ディレクトリ配下に tmp ディレクトリが作成され、そこに画像ファイルがコピーされている場合があります。
(tmp/public/assets/brand_logo-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pngなど)

この場合、以前起動した際のロゴ画像ファイルが利用されてしまうようですが、tmp をリネームなどして再度コンテナ起動をすると、新たな画像ファイルを用いて tmp ディレクトリを作ってくれるよう。

##余談: Dockerfileの作り

Dockerfileはごくごくシンプルなのですが、今回気にしてみたのは、以下の部分。

Dockerfile
RUN test -e /home/git/gitlab/app/assets/images/brand_logo.png && \
    test -e /home/git/gitlab/app/assets/images/logo-white.png && \
    test -e /home/git/gitlab/app/assets/images/logo-black.png && \
    test -e /home/git/gitlab/app/assets/images/favicon.ico

ベースにしているイメージは逐一アップデートされていくので、リソースに関するパスなどはいつまで同じかわかりません。こういう状況では、一見ビルドできているけど実は反映されてません みたいなことが簡単に発生しうるなと。
そこで、DockerfileでチェックするコードをRUNしておけば、とりあえず期待するファイルがベースイメージ中に存在するかどうかくらいはチェックできるかなあ、と。

これで目力に負けることなく動作検証できます。

33
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?