前回の記事を手順にまとめる。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 2018-06-27
- Docker 18.06.1-ce, build e68fc7a
- docker-compose 1.23.0dev, build 48a6f213
情報源
前回
失敗しながらで紛らわしいので今回手順をまとめる。
前提
- http://ytyaru.hatenablog.com/entry/2019/06/05/000000
- http://ytyaru.hatenablog.com/entry/2019/08/07/000000
- http://ytyaru.hatenablog.com/entry/2019/08/08/000000
- http://ytyaru.hatenablog.com/entry/2019/08/09/000000
- http://ytyaru.hatenablog.com/entry/2019/08/10/000000
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker-compose armhf 13e9175812a1 47 hours ago 1.05GB jsurf/rpi-mariadb latest 66f523dae746 5 days ago 289MB python 3.6 4af1ba713e0d 3 weeks ago 736MB kapdap/gitea-rpi latest 927594b7bb8c 2 months ago 100MB
方法
手順
docker-compose.ymlファイル作成docker-composeでインストール&起動- ブラウザでインストール
- 他PCからアクセス
- 再起動
- 設定
1. docker-compose.ymlファイル作成
$ cd ~/ $ leafpad ./docker-compose.yml
- テキストエディタ
leafpadで以下の内容をコピペする Ctrl+Sキー押下して保存する
version: "2"
networks:
gitea:
external: false
services:
server:
image: kapdap/gitea-rpi:latest
environment:
- USER_UID=1000
- USER_GID=1000
networks:
- gitea
volumes:
- ./gitea:/data
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: jsurf/rpi-mariadb
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
networks:
- gitea
volumes:
- ./mysql:/var/lib/mysql
なお、マシン起動と同時にGiteaサーバアプリを起動させたいならrestart: alwaysを追記すること。
services:
server:
...
restart: always
...
db:
...
restart: always
...
2. docker-composeでインストール&起動
$ cd ~/ $ docker-compose up -d
コンテナの状態が以下のようになる。
$ docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------------------------------
pi_db_1_69bcb8c6e23f docker-entrypoint.sh mysqld Up 3306/tcp
pi_server_1_d05868603e29 /usr/bin/entrypoint /bin/s ... Up 0.0.0.0:222->22/tcp, 0.0.0.0:3000->3000/tcp
3. ブラウザでインストール
- ブラウザ起動
- URL欄に
localhost:3000(127.0.0.1:3000)を入力しEnterキー押下する - Giteaインストール画面が表示される

パスワードにgiteaを入力するホストにdb:3306を入力するGitea をインストールボタンをクリックする

- ログイン画面が表示される(約50秒後)

4. 他PCからアクセス
- GiteaをインストールしたマシンのIPアドレスを確認する
- 他マシンで
IPアドレス:3000にアクセスする
4-1. IPアドレス確認
$ ip a
...
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:27:eb:7c:a9:49 brd ff:ff:ff:ff:ff:ff
inet 192.168.11.9/24 brd 192.168.11.255 scope global wlan0
valid_lft forever preferred_lft forever
inet6 fe80::2eee:d7ae:f774:8b1c/64 scope link
valid_lft forever preferred_lft forever
...
192.168.11.9。ここにアクセスする。
4-2. アクセスする
- 他のPC(ラズパイ)を起動する
- ブラウザを起動する
- URL欄に
192.168.11.9:3000を入力してEnterキー押下する - Giteaのページが表示される

成功。Giteaサーバできあがり。
5. 再起動
docker-compose.ymlにrestart: alwaysと記述したなら不要。
OS再起動するとサービスは停止している。再び起動するにはdocker-compose.ymlがあるパスでdocker-compose restartコマンドを実行する。
現状、サービスはExitで停止している。
$ docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------
pi_db_1_69bcb8c6e23f docker-entrypoint.sh mysqld Exit 137
pi_server_1_d05868603e29 /usr/bin/entrypoint /bin/s ... Exit 0
restartコマンドで再起動する。
$ docker-compose restart Restarting pi_server_1_d05868603e29 ... done Restarting pi_db_1_69bcb8c6e23f ... done
StateがUpになった。起動成功。
$ docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------------------------------
pi_db_1_69bcb8c6e23f docker-entrypoint.sh mysqld Up 3306/tcp
pi_server_1_d05868603e29 /usr/bin/entrypoint /bin/s ... Up 0.0.0.0:222->22/tcp, 0.0.0.0:3000->3000/tcp
このマシンのIPアドレスにアクセスすればGiteaサーバとして動く。
6. 設定
docker-compose.ymlがあるディレクトリ/gitea/gitea/app.ini
このファイルで設定を変更できる。
ROOT_URLは作成したリポジトリをgit pullするときのアドレスに使われる。他のサーバからアクセスするなら、以下を変更すべし。
before
[server] SSH_DOMAIN = localhost DOMAIN = localhost HTTP_PORT = 3000 ROOT_URL = http://localhost:3000/
after
[server] SSH_DOMAIN = 192.168.11.9 DOMAIN = 192.168.11.9 HTTP_PORT = 3000 ROOT_URL = http://192.168.11.9:3000/
なお、IPアドレスはip aコマンドで確認すること。
編集できたら、おそらく再起動すべき。
$ cd ~ $ docker-compose restart
Restarting pi_server_1_d05868603e29 ... done Restarting pi_db_1_69bcb8c6e23f ... done
これで指定したアドレスでgit pullできるはず。
git pullできなかった。かわりにgit cloneできた。
$ git pull http://192.168.11.9:3000/ytyaru/test_20181004.git fatal: Not a git repository (or any parent up to mount point /tmp) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
ただ、なぜかユーザ名とパスワードを求められた。
$ git clone http://192.168.11.9:3000/ytyaru/test_20181004.git Cloning into 'test_20181004'... Username for 'http://192.168.11.9:3000': ytyaru Password for 'http://ytyaru@192.168.11.9:3000': remote: Counting objects: 5, done. remote: Compressing objects: 100% (5/5), done. remote: Total 5 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (5/5), done. Checking connectivity... done.