やりたいこと
家にあるラズベリーパイに、Gitリポジトリをhttp(s)で提供してくれるサービスを構築したい。
さらに構築はホストOSではなくて、コンテナ(ゲストOS)で行いたい。
- 試したマシンの情報
- Raspberry Pi 4 Model B 4GB
- OS : Ubuntu 22.04 LTS
- CPUアーキテクチャ : aarch64
- Dockerのバージョン : 20.10.17
課題
以下のgitlab-eeのDockerイメージをdocker run
したらサクッと作れるのだろうと思ったが上手く行かなかった。
どうやらCPUアーキテクチャがamd64のマシンにしか対応していないらしく、ラズパイがarm64(aarch64)のために上手くいかないようだ。
解決策
GitLabだと上手く行かずに諦め…、以下の「Docker-GitBucket-ARM64」からGitBucketのarm64対応版Dockerイメージを作ったらデプロイできた!
手順
公開レジストリにコンテナイメージは見つからなったので、自分でソースを取ってきてビルドする必要あり。
- ソースをgit clone
$ git clone https://github.com/aziascreations/Docker-GitBucket-ARM64.git
- コンテナイメージをビルド
-
--force-rm=true
はビルドが失敗した時に作りかけのイメージを消すオプションなので、無くてもOK
-
$ cd Docker-GitBucket-ARM64
$ docker build --force-rm=true -t gitbucket-arm64 .
- コンテナをデプロイ
- 8080 : httpサービスを提供
- 29418 : ssh接続でpush/pullなど可能
$ docker run --name gitbucket -d \
-p 8080:8080 -p 29418:29418 \
gitbucket-arm64
接続確認
- Webブラウザで以下にアクセス
- http://[ホストOSのホスト名等]:8080
- Sign In時のデフォルトのIDパスワード
- ID : root
- password : root
試行錯誤したメモ(おまけ)
ご参考に、上手く行かなかったケースも記載する。
筆者のやり方がよくなかっただけで、ちゃんとやれば以下でも出来るのかもしれない。
GitLabでの試行錯誤
-
arm64対応のDockerイメージ。
yrzr/gitlab-ce-arm64v8
- コンテナ起動はできるのだが、Gitのサービスにアクセスできなかった
-
omnibus-gitlabのソースのarm64-docker-imageブランチ
- こちらのdockerディレクトリに移動して
docker build
するも、必要なファイルがなくて失敗
- こちらのdockerディレクトリに移動して
GitBucketでの試行錯誤
-
Docker HubのGitBucketのイメージ
- arm64非対応で失敗