前回の記事を手順にまとめる。
対象環境
- 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.