やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Raspbian stretch にdocker-composeでGiteaをインストールできた

 ついに成功! 他のマシンからアクセスできることも確認できた。

対象環境

  • Raspbierry pi 3 Model B+
  • Raspbian stretch 2018-06-27
  • Docker 18.06.1-ce, build e68fc7a
  • docker-compose 1.23.0dev, build 48a6f213

前提

$ 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

手順

  1. docker-compose.ymlファイル作成
  2. docker-composeでインストール&起動
  3. 起動(ブラウザ)
  4. 他PCからアクセス

1. docker-compose.ymlファイル作成

 Gitea公式サイトのDockerによるインストール方法を参考にする。

  • imageファイルはラズパイで動作するものに変える
  • restart: alwaysは外した
  • ./gitea:/data相対パスが気になったのでカレントディレクトリを/home/piにする

 ファイル内容は以下。

docker-compose.yml

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

2. docker-composeでインストール&起動

 上記ファイルを作って実行する。

$ cd ~/
$ sudo leafpad ./docker-compose.yml
(上記内容をコピペして保存)
$ docker-compose up -d

 コンテナの起動状態を確認する。まだ何も起動していない。

$ docker-compose ps
Name   Command   State   Ports
------------------------------

 起動する。(docker-compose.ymlに基づき)

$ docker-compose up -d
Creating network "pi_gitea" with the default driver
Creating pi_db_1_be75196d1733 ... done
Creating pi_server_1_2f95267adfde ... done

 コンテナの起動状態を確認する。起動した。

$ 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. 起動(ブラウザ)

Giteaインストール

  1. ブラウザ起動
  2. URL欄にlocalhost:3000(127.0.0.1:3000)を入力しEnterキー押下
  3. Giteaインストール画面が表示される
    f:id:ytyaru:20181002152502p:plain
  4. パスワードにgiteaを入力する
  5. Gitea をインストールボタン押下する
  6. エラー データベース設定が無効:dial tcp 127.0.0.1:3306: connect: connection refused
    f:id:ytyaru:20181002152537p:plain

 ここで公式サイトにある以下の説明を思い出す。

If the database was started with the docker-compose setup as documented above please note that db must be used as the database hostname.

上記のように docker-composeの設定でデータベースを起動した場合は、データベースホスト名としてdbを使用しなければならないことに注意してください。

 というわけで、以下やってみる。

  1. ホストの項目にdb:3306を入力
  2. Gitea をインストールボタン押下

f:id:ytyaru:20181002152602p:plain

 50秒後にログイン画面が表示された。成功!

f:id:ytyaru:20181002152637p:plain

4. 他PCからアクセス

  1. 今回GiteaをインストールしたPCのIPアドレスを確認する
  2. 他PCで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。(Dockerにより追加されたものも見えるが無視)

4-2. アクセス確認

  1. 他のPC(ラズパイ)を起動する
  2. ブラウザを起動する
  3. URL欄に192.168.11.9:3000を入力してEnterキー押下する
  4. Giteaのページが表示される
    f:id:ytyaru:20181002155700p:plain

 ついにサーバらしい振る舞いを見た。