##What’s New
最新版はこちら【2019年版】macOS 10.14 Mojaveの docker で TestLink をインストールと設定する
##Preconditions
- OS: macOS 10.14.6 Mojave
- VM: docker desktop Community Version: 2.1.0.4(39773) Channel: stable
##TL;DR
適当なディレクトリに docker-compose.yml をダウンロードして、カスタマイズしてから docker-comse up で起動。
公式ドキュメント:https://hub.docker.com/r/bitnami/testlink/
一つずつていねいな設定作業がオススメ(各種設定をミスると Apache が起動しないこと多し)。
##1. TestLink をインストールする
インストール
$ mkdir $HOME/testlink
$ cd $HOME/testlink
$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-testlink/master/docker-compose.yml > docker-compose.yml
docker-compose.yml を編集する
$ vim $HOME/testlink/docker-compose.yml
編集内容は、
- http port を 80 -> 8080 へ変更する
- TestLink admin email を設定する
- smtp(gmail)を設定する
- 言語を日本語に設定する
version: '2'
services:
mariadb:
image: 'bitnami/mariadb:latest'
environment:
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- 'mariadb_data:/bitnami/mariadb'
testlink:
image: 'bitnami/testlink:latest'
labels:
kompose.service.type: nodeport
ports:
- '8080:80'
- '443:443'
environment:
- 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=password
- SMTP_CONNECTION_MODE=tls
volumes:
- 'apache_data:/bitnami/apache'
- 'testlink_data:/bitnami/testlink'
depends_on:
- mariadb
volumes:
mariadb_data:
driver: local
apache_data:
driver: local
testlink_data:
driver: local
TestLink コンテナの起動
$ cd $HOME/testlink
$ docker-compose up -d
TeskLink のフロントエンド
http://localhost:8080/login.php
######TestLink の admin アカウント初期設定値は、
アカウント:user
パスワード:bitnami
TestLink コンテナの終了
$ cd $HOME/testlink
$ docker-compose stop
2. docker のコンテナやイメージの削除
dockerのコンテナ・イメージを謎のコマンド群で消すのもいいけどdocker-cleanコマンドもいいよ
以上
参考資料
1. TestLink のコンテナにログインする
docker ps で TestLink のコンテナIDを探す
$ docker ps
TestLink のコンテナにログインする
$ docker exec -it コンテナID /bin/bash
######注: docker exec だと、/bin/bash プロセスを起動させて標準入出力を行う。仮にログインしたコンテナを exit しても、起動させた /bin/bash プロセスだけが終了して、コンテナは停止しない。類似コマンドの、docker attach は、ログインしたコンテナで exit するとコンテナが終了する
参考: Docker・コンテナの確認と接続(ps, attach, execコマンド)
参考: Dockerコンテナ内で操作 attachとexecの違い
ログインしたコンテナからログアウト(終了)する
$ exit
2. もしも手動で TestLink の基本設定をするならば……
TestLink のコンテナにログインする
$ docker exec -it コンテナID /bin/bash
このコンテナに Vim をインストールする
$ apt-get update
$ apt-get install vim
custom_config.inc.php を Vim で開く
$ vim /bitnami/testlink/custom_config.inc.php
custom_config.inc.php に Gmail SMTP 設定ほかを記述する
<?php
//path設定
$tlCfg->log_path = '/opt/bitnami/testlink/logs/';
$g_repositoryPath = '/opt/bitnami/testlink/upload_area/';
//smtp設定
$g_smtp_host = 'smtp.gmail.com';
$g_tl_admin_email = 'mymailaddress@gmail.com';
$g_from_email = 'mymailaddress@gmail.com';
$g_return_path_email = 'mymailaddress@gmail.com';
$g_smtp_username = 'mymailaddress@gmail.com';
$g_smtp_password = 'password';
$g_smtp_port = '587';
$g_smtp_connection_mode = 'tls';
//デフォルト言語を日本語にする
$tlCfg->default_language = 'ja_JP';
//TestLinkセキュリティ上の弱点が存在する場合に警告する方法は、
// * 'SCREEN':ログイン画面にメッセージを表示する(デフォルト)
// * 'FILE':警告ファイルを作成、ログイン画面にメッセージを表示する。
// * 'SILENT':警告ファイルを作成、ログイン画面にメッセージを表示しない。
$tlCfg->config_check_warning_mode = 'SCREEN';
//sessionInactivityTimeoutを延長する
$tlCfg->sessionInactivityTimeout = 86400;
//ユーザーによる新規アカウント登録を禁止する(管理者による新規アカウント登録に限定する)
$tlCfg->user_self_signup = FALSE;
// アップロードするファイルサイズ上限を拡大する
// ただし(多くの場合のPHPデフォルト値の)2MBを超える場合は、
// 同時に php.ini の upload_max_filesize の設定も変更する。
$tlCfg->import_max_size = '40000000'; // in bytes
$tlCfg->repository_max_filesize = 40; //MB
//レポートとメトリクスで表示される会社名を設定する
$tlCfg->document_generator->company_name = '自社名';
$tlCfg->document_generator->company_copyright = 'Copyright© ' . date('Y') . '自社名';
$tlCfg->document_generator->confidential_msg = '本資料は自社名の許可無く対外的に参照・配布しないようお願い申し上げます。';
//レポートで表示される TestLink ロゴを自社ロゴに変更する
$tlCfg->document_generator->company_logo = 'logo.png';
//ロゴマークの高さを指定する
$tlCfg->document_generator->company_logo_height = '50';
?>
注1: Google アカウントのセキュリティ設定で、安全性の低いアプリへのアクセスを有効にする。有効にしないと TestLink のメール送信が失敗するので注意する
参考:Google マイアカウント
注2: TestLink のログイン画面トップの警告は、各種設定をすれば消せる
参考:TestLinkの警告にちゃんと対応する
3. タイムゾーンの修正をする
TeskLink は PHP のタイムゾーンを引用する仕様なので php.ini のデフォルトタイムゾーンを変更する
TestLink のコンテナにログインする
$ docker exec -it コンテナID /bin/bash
php.ini を探して Vim で編集する
$ php --ini
Configuration File (php.ini) Path: /opt/bitnami/php/lib
Loaded Configuration File: /opt/bitnami/php/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
$ vim /opt/bitnami/php/lib/php.ini
php.ini の最終行付近にある date.timezone = "Asia/Tokyo" にする
; Local Variables:
; tab-width: 4
; End:
upload_max_filesize = 40M
post_max_size = 40M
extension_dir = /opt/bitnami/php/lib/php/extensions
;date.timezone = UTC
date.timezone = "Asia/Tokyo"
zend_extension = opcache.so
opcache.enable = 1
opcache.memory_consumption = 128
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 60
opcache.interned_strings_buffer = 8
opcache.fast_shutdown = 1
PHP のタイムゾーンが Asia/Tokyo になったことを確認する
$ php -i | grep timezone
Default timezone => Asia/Tokyo
date.timezone => Asia/Tokyo => Asia/Tokyo
編集した php.ini の設定を反映するために Apache を再起動する
$ /opt/bitnami/apache/bin/apachectl restart
4. TestLink > レポートメトリクス のレポートに会社のロゴマークを入れる
設定方法は2種類あるのでお好きな方で……
####設定方法その1:ローカル環境から TestLink の指定ディレクトリにコピーする
$ $HOME/logo
$ ls
logo.png
$ docker cp ./ コンテナID:/opt/bitnami/testlink/gui/themes/default/images
####設定方法その2:ウェブのロゴマークを TestLink の指定ディレクトリに wget する
TestLink のコンテナにログインする
$ docker exec -it コンテナID /bin/bash
wget をインストールする
$ apt-get update
$ apt-get install wget
TestLink の指定ディレクトリにロゴマークを追加する
$ cd /opt/bitnami/testlink/gui/themes/default/images
$ wget http://hogehoge.co.jp/logo/logo.png
####ロゴマークの準備ができたら custom_config.inc.php に以下の内容を追記する
//レポートで表示される TestLink ロゴを自社ロゴに変更する
$tlCfg->document_generator->company_logo = 'logo.png';
//ロゴマークの高さを指定する
$tlCfg->document_generator->company_logo_height = '50';
5. TestLink > レポートメトリクス > グラフ > グラフによるレポート の文字化けを解消する
TestLink のコンテナにログインする
$ docker exec -it コンテナID /bin/bash
wget と unzip をインストールする
$ apt-get update
$ apt-get install wget
$ apt-get install unzip
システムフォントにIPAexフォントを追加する
$ cd /usr/share/fonts/truetype
$ wget http://dl.ipafont.ipa.go.jp/IPAexfont/IPAexfont00201.zip
$ unzip IPAexfont00201.zip
$ rm -fr IPAexfont00201.zip
fc-cache をインストールする
$ apt-get update
$ apt-get install fontconfig
システムフォントのキャッシュをクリアする
$ fc-cache -fv
custom_config.inc.php に以下の内容を追記する
//グラフのレポートのフォントとしてシステムフォントのIPAexゴシック体を利用する設定
$tlCfg->charts_font_path = "/usr/share/fonts/truetype/IPAexfont00201/ipaexg.ttf";
6. Bad Request 対策をする
TeskLink のセキュリティ対策が厳しすぎて Bad Request エラーになる。クライアントからの HTTP リクエストのヘッダのサイズ制限を緩和する
TestLink のコンテナにログインする
$ docker exec -it コンテナID /bin/bash
httpd プロセスを確認する
$ ps aux | grep httpd
vim で httpd.conf を編集する
$ sudo vim /opt/bitnami/apache/conf/httpd.conf
httpd.conf の最終行に以下を追加する
LimitRequestFieldsize 1048576
編集した httpd.conf の設定を反映するために Apache を再起動する
$ /opt/bitnami/apache/bin/apachectl restart
7. Upload ファイルサイズを拡大する
TeskLink のテストケースなどをアップロードする場合に、ファイルサイズが大きすぎて読み込まないエラーの対策。custom_config.inc.php と php.ini の設定を変更する。
TestLink のコンテナにログインする
$ docker exec -it コンテナID /bin/bash
Vim で custom_config.inc.php を開く
$ vim /bitnami/testlink/custom_config.inc.php
custom_config.inc.php に以下の設定を記述する
<?php
// アップロードするファイルサイズ上限を拡大する
// ただし(多くの場合のPHPデフォルト値の)2MBを超える場合は、
// 同時に php.ini の upload_max_filesize の設定も変更する。
$tlCfg->import_max_size = '40000000'; // in bytes
$tlCfg->repository_max_filesize = 40; //MB
?>
Vim で php.ini を編集する
$ vim /opt/bitnami/php/lib/php.ini
php.ini の最終行付近にある以下のサイズを拡大する
upload_max_filesize = 40M
post_max_size = 40M
編集した php.ini の設定を反映するために Apache を再起動する
$ /opt/bitnami/apache/bin/apachectl restart
8. TestLink の警告表示に対応する
ログイン画面の上部中央に「インストールディレクトリを削除してください!」と警告表示される
再びインストールウィザードを実行させないために、該当ディレクトリごと削除する
$ rm -fr /opt/bitnami/testlink/install
9. HTTP ERROR 500 の対策
TestLink のコンテナにログインする
$ docker exec -it コンテナID /bin/bash
httpd プロセスを確認する
$ ps aux | grep httpd
vim で httpd.conf を編集する
$ sudo vim /opt/bitnami/apache/conf/httpd.conf
Apach起動時のエラー「AH00558: httpd: Could not reliably determine the server's fully qualified domain name〜」対策としてコメントアウト、サーバーネームが有れば設定する
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName www.example.com:80
編集した httpd.conf の設定を反映するために Apache を再起動する
$ /opt/bitnami/apache/bin/apachectl restart
###以上