僕がRaspberry Pi 3 Model BでGitlabを動かすのを諦めた話

初めに、Raspberry Pi 3 Model Bでは… Gitlabは入りません!色々入っているサイトとかありますが…
公式のインストールではNGです!

と言いますのはQNAPのcontainer / docker にてGitlab 14は重いのよぉ;;
だったら、物理サーバでと思ったのですが、サーバが死にました
余っているのを考えるとRaspberry piでしたw
速攻Raspberry pi 4でも良かったのですが、1台だけ余っているraspberry pi 3 Bでできれば良いなぁ〜とした心と
micro-HDMI変換が届いていなかっただけとかw

簡単に確認した方法をまとめると

  • 公式のOmnibusをインストール… できない
  • Dockerにてインストール… できない

公式のGitlab Omnibusがインストールできない

インストール手順 : https://about.gitlab.com/install/#raspberry-pi-os
設定周 : https://docs.gitlab.com/omnibus/settings/rpi.html

インストール手順にもありますが、推奨環境はRaspberry Pi 4の4GBです。OSは32bitをサポートします。
見落としていて作業していましたw

Raspberry Pi 4 with at least 4GB is recommended. Only 32bit (armhf) is supported at this point. 64 bit (arm64) is on its way.

https://about.gitlab.com/install/#raspberry-pi-os

実施

※ 共通初期設定を実施

コピペだけど、インストール手順から作業実施

リポジトリを追加して…

pi@raspberrypi:~ $ sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/raspberry-pi2/script.deb.sh | sudo bash

インストール…

pi@raspberrypi:~ $ sudo EXTERNAL_URL="https://192.168.1.220" apt-get install gitlab-ce

インストールは問題ないですが、続きましてのgitlab-ctl reconfigureが終わりません…

地獄です… sshではせずにローカルでする方が無難です

一旦閉じて、USB SSDを/var/opt/gitlab にマウントしてアクセスを高速化してみるが… 変わりません

Swapを追加するが… NGですわw

こいつは試行錯誤は諦めました…
スペック低いしw

DockerにてGitlabがインストールできない

Dockerなら環境依存しないので、Dockerにてインストールを実施してみる

手順書 : https://docs.gitlab.com/ee/install/docker.html

※ 共通初期設定を実施

USBにSSDを追加…
コマンドだけの略式で記載

sudo fdisk /dev/sda
ここは略
sudo mkfs.ext4 /dev/sda1
sudo mkdir /mnt/gitlab
sudo mount /dev/sda1 /mnt/gitlab

自動マウント /etc/fstab

/dev/sda1 /var/opt/gitlab ext4 defaults 0 0

Dockerのインストール

Dockerをインストールします… ひねりもありません

pi@raspberrypi:~ $ sudo apt-get install docker
pi@raspberrypi:~ $ sudo apt-get install docker.io
pi@raspberrypi:~ $ docker -v
Docker version 18.09.1, build 4c52b90

とりあえず、最新チェックと掃除

pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get upgrade
pi@raspberrypi:~ $ sudo apt-get autoremove
pi@raspberrypi:~ $ sudo apt-get autoclean

Gitlab-eeの実行

pi@raspberrypi:$ export GITLAB_HOME=/mnt/gitlab/
pi@raspberrypi:$ sudo docker run --detach \
  --hostname 192.168.1.220 \
  --publish 443:443 --publish 80:80 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  gitlab/gitlab-ee:latest

しばらく待つとアクセスでき…. ません!

早速、中に入ってログを確認…

pi@raspberrypi:$ sudo docker exec -it gitlab /bin/bash

… 起動していなからコマンドを実行できません?

pi@raspberrypi:~ $ sudo docker ps
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                          PORTS               NAMES
a6dd8cfd50d0        gitlab/gitlab-ee:latest   "/assets/wrapper"   11 hours ago        Restarting (1) 17 seconds ago                       gitlab

Restering?
実行ログを確認…

pi@raspberrypi:~ $ sudo docker logs -f gitlab
standard_init_linux.go:207: exec user process caused "exec format error"

え?フォーマットエラー?

無駄な足掻きだが、GITLAB_HOMEの権限ユーザを変更

pi@raspberrypi:~ $ sudo chgrp -R docker /mnt/gitlab/config /mnt/gitlab/data /mnt/gitlab/logs
pi@raspberrypi:~ $ sudo chmod g+rw /mnt/gitlab/config /mnt/gitlab/data /mnt/gitlab/logs

無意味でしたw

いろいろ調べましたが、これで結論!

アーキテクチャが違うため、#!/bin/bash程度で落ちると言う感じかな?

https://qiita.com/reireias/items/03bfdaeb7f3afd7c4339

pi@raspberrypi:~ $ uname -m
armv7l

Gitlab-eeはOS/ARCH linux/amd64ですね
https://hub.docker.com/layers/gitlab/gitlab-ee/latest/images/sha256-2eaae36c62b09ea2d23fd78775d4bc9df049d3c4be9c6daa903dcfebab369832?context=explore

対策とか書いていただいていますが、今回はギブアップ!スペック低いしw

Raspberry Pi 3 Model BのdockerにてGitLabは動きません!

共通初期構成

簡単な手順

GitLab on Raspberry Pi OS Lite 32bit を! めんどくさいのでRaspberry Pi Imager for macosでSDカードに書き込みます

起動してすぐにアップグレードして再起動します

pi@raspberrypi:~ $ sudo rpi-update
pi@raspberrypi:~ $ sudo reboot

次にネットワーク関係を設定します

interface

pi@raspberrypi:~ $  vi /etc/dhcpcd.conf

抜粋

interface eth0
static ip_address=192.168.1.220/24
static routers=192.168.1.254
static domain_name_servers=192.168.1.254

ネットワーク、その他

SSHを有効…
コマンドめんどくさいのでGUIで…

pi@raspberrypi:~ $ sudo raspi-config

Interface Options > SSH : enable
Localisation Options > Timezone : Asia/Tokyo

pi@raspberrypi:~ $ sudo reboot