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