【2019年版】QNAP に Bitnami 版 TestLink をインストールする方法



## TL;DR
最新のContainerStationは、

- docker-compose コマンドが使えるようになった
- あわせてdockerコマンドのlinkオプション廃止、docker network の利用を推奨

以下、2019年11月現在の事情に合わせて記述する

### 環境

- NASマシン：QNAP TS-451+
- NASアプリ：ContainerStation Version 2.0.356(2019/05/28) 
- NASアプリ：FileStation Version 5.1.0(20190531)
- NASアプリ：Hybrid Backup Sync Version 3.0.191016
- ローカルPC: macOS Mojave 10.14.6



---

## 1. 共有フォルダーを作成

### Dockerコンテナの永続化用のBackupディレクトリを作成

1. QNAP TS-451+ にログイン
2. バックアップ同期ソフトの HybridBackupSync を起動
3. /Container/dataフォルダを定期バックアップ（毎日）する
3. FileStation を起動
4. バックアップの指定フォルダに新規フォルダを作成
    5. /Container/data/testlink/mariadb
    6. /Container/data/testlink/testlink 

---

## 2. ContainerStation の docker-compose でインストール

### bitnami/testlink から docker-compose.yml をダウンロードして編集する

参考URL：[bitnami/testlink](https://hub.docker.com/r/bitnami/testlink)

```bash:ローカルPC
$ mkdir -p ~/temp/testlink
$ cd ~/temp/testlink
$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-testlink/master/docker-compose.yml > docker-compose.yml
```


---

### 参考：docker-compose.yml を任意のエディタで開く

```bash:ローカルPC
$ cd ~/temp/testlink
$ vim docker-compose.yml
```

---
### 参考：オリジナルのdocker-compose.yml

```bash:docker-compose.yml
version: '2'

services:
  mariadb:
    image: 'bitnami/mariadb:10.3'
    environment:
      - MARIADB_USER=bn_testlink
      - MARIADB_DATABASE=bitnami_testlink
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - 'mariadb_data:/bitnami'
  testlink:
    image: 'bitnami/testlink:1'
    environment:
      - MARIADB_HOST=mariadb
      - MARIADB_PORT_NUMBER=3306
      - TESTLINK_DATABASE_USER=bn_testlink
      - TESTLINK_DATABASE_NAME=bitnami_testlink
      - ALLOW_EMPTY_PASSWORD=yes
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - 'testlink_data:/bitnami'
    depends_on:
      - mariadb

volumes:
  mariadb_data:
    driver: local
  testlink_data:
    driver: local
```
---

### 編集後の docker-compose.yml

編集ポイント
- image: を bitnami/mariadb:10.3 に指定する
- image: を bitnami/testlink:1.9.19 に指定する
- ALLOW_EMPTY_PASSWORD=yes で DB パスワード無しにする
　**※簡易だが公開サーバには不向き、DBパスワードありは後述する**
- QNAP の各バックアップディレクトリを Volumes: で指定する
- ポート番号を任意のポートに指定する
- メール設定をする（本設定は Gmail のもの）
- TestLink の管理者アカウントとパスワードを指定する
- TestLink の言語を日本語対応させる

```bash:docker-compose.yml
version: '3'

services:
  mariadb:
    image: 'bitnami/mariadb:10.3'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_USER=bn_testlink
      - MARIADB_DATABASE=bitnami_testlink
    volumes:
      - '/share/Container/data/testlink/mariadb:/bitnami'
  testlink:
    image: 'bitnami/testlink:1.9.19'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_HOST=mariadb
      - MARIADB_PORT_NUMBER=3306
      - TESTLINK_DATABASE_USER=bn_testlink
      - TESTLINK_DATABASE_NAME=bitnami_testlink
      - TESTLINK_EMAIL=mymailaddress@gmail.com
      - TESTLINK_LANGUAGE=ja_JP
      - SMTP_ENABLE=true
      - SMTP_HOST=smtp.gmail.com
      - SMTP_PORT=587
      - SMTP_USER=mymailaddress@gmail.com
      - SMTP_PASSWORD=mymailpassword12345678
      - SMTP_CONNECTION_MODE=tls
      - TESTLINK_USERNAME=admin
      - TESTLINK_PASSWORD=pass1234
    ports:
      - '0.0.0.0:33080:80'
      - '0.0.0.0:33443:443'
    volumes:
      - '/share/Container/data/testlink/testlink:/bitnami'
    depends_on:
      - mariadb
```

---
### DBパスワードありの docker-compose.yml

編集ポイント
- 上記の設定に DB パスワードを設定する

```bash:docker-compose.yml
version: '3'

services:
  mariadb:
    image: 'bitnami/mariadb:10.3'
    environment:
      - MARIADB_ROOT_PASSWORD=master_root_password
      - MARIADB_PASSWORD=my_password
      - MARIADB_USER=bn_testlink
      - MARIADB_DATABASE=bitnami_testlink
    volumes:
      - '/share/Container/data/testlink3/mariadb:/bitnami'
  testlink:
    image: 'bitnami/testlink:1.9.19'
    environment:
      - TESTLINK_DATABASE_PASSWORD=my_password
      - MARIADB_HOST=mariadb
      - MARIADB_PORT_NUMBER=3306
      - TESTLINK_DATABASE_USER=bn_testlink
      - TESTLINK_DATABASE_NAME=bitnami_testlink
      - TESTLINK_EMAIL=mymailaddress@gmail.com
      - TESTLINK_LANGUAGE=ja_JP
      - SMTP_ENABLE=true
      - SMTP_HOST=smtp.gmail.com
      - SMTP_PORT=587
      - SMTP_USER=mymailaddress@gmail.com
      - SMTP_PASSWORD=mymailpassword12345678
      - SMTP_CONNECTION_MODE=tls
      - TESTLINK_USERNAME=admin
      - TESTLINK_PASSWORD=pass1234
    ports:
      - '0.0.0.0:33080:80'
      - '0.0.0.0:33443:443'
    volumes:
      - '/share/Container/data/testlink/testlink:/bitnami'
    depends_on:
      - mariadb
```

---


### ContainerStation で TestLink を起動する

1. QNAP TS-451+ にログイン
2. ContainerStation を起動
3. 左カラムの「作成」を選び、画面右上にある「＋アプリケーションの作成」ボタンを押す
4. 「アプリケーションの作成」画面が起動するので、
5. 「アプリケーション名：」に任意の名前（ハイフン不可）を入力する
6. 「YAML：」に、ローカルPC上で編集した docker-compose.yml をコピペする
7. 「YAMLを検証」ボタンを押して、コピペの内容を検証する
8. 「作成」ボタンを押す

---

### 数分ほど待機すると、ログイン画面にアクセスできるようになる

指定したアカウントとパスワードでログインできるかを確認する

- アカウント：admin (パスワード無指定のデフォルト値は： user ）
- パスワード：pass1234 (パスワード無指定のデフォルト値は： bitnami ）

http://QNAPのIPアドレス:33080/
https://QNAPのIPアドレス:33443/




---


##4. TestLink を設定する

[【2019年版】Docker Bitnami/TestLink を設定する](https://qiita.com/shimizumasaru/items/6c7b3f55a2dd63d5252b)


### 以上