KUSANAGI RoDの使い方(4) (高速Dockerの話)

宮﨑悟

KUSANAGIの利用マニュアル第二弾。環境設定ファイルの構造と使用方法について詳細に解説します。プロビジョン後に生成される複数のファイルそれぞれの役割、格納する環境変数、デフォルト設定や自分で変更可能な要素などを一つ一つ説明します。各コンテナで使用する重要な環境変数を理解し、より効果的な運用に活用しましょう。次回はconfigコンテナの役割について解説します。

前回は、KUSANAGI RoD(以下RoD)で環境を生成するためのオプションについて説明しました。今回は、provision後に生成されるターゲットディレクトリ以下のファイルについて説明しようと思います。

環境設定ファイル

環境設定ファイルは、.kusanagi で始まるファイルに格納されます。このファイル内に、各コンテナで使用する環境変数を記述しています。kusanagi-docker provision 前に環境変数を指定しておくと、環境生成時に環境変数の値が使用されます。
先頭が#で始まる行はコメント行です。使用しない環境変数にはデフォルト値を入れて、コメントアウトして記述することがあります。

.kusanagi

環境設定ファイル .kusanagi は、ターゲット内共通の環境変数を格納します。

  • PROFILE=wordpress
  • TARGET=wordpress
    PROFILEとTARGETは本質的に同じものです。
    プロビジョン時に指定したターゲット名を格納します。
  • TARGETDIR=/home/user/wordpress
    ターゲットディレクトリをフルパスで格納します。
  • FQDN=wordpress.local
    プロビジョン時に指定したFQDNを格納します。
  • BASEDIR=/home/kusanagi/wordpress
    Docker内部のベースディレクトリです。
  • DOCUMENTROOT=/home/kusanagi/wordpress/DocumentRoot
    Docker内部のhttpdのrootディレクトリです。
  • ROOT_DIR=DocumentRoot
    rootディレクトリ名です。
  • KUSANAGI_PROVISION=wp
    プロビジョンしたアプリケーション名です。c5/drupal/lamp/wp のいずれかが入ります。
  • KUSANAGI_DB_SYSTEM=mysql
    DB種別で、mysql か pgsqlが入ります。

.kusanagi.wp

環境変数ファイル .kusanagi.wp は、WordPressに関する環境変数を格納します。

  • KUSANAGIPASS=XF78PJ6cI9l2s7i7mfz4Uww
    kusanagi ユーザのパスワードです。
  • WP_TITLE=”WordPress”
    WordPressのタイトルです。
  • WP_LANG=ja
    WordPressの言語です。
  • DBPREFIX=
    DB内のテーブルのプレフィックスです。無指定時は”wp_” になります。
  • MYSQL_CHARSET=utf8mb4
    MySQLのデフォルト文字セットです。
  • NO_USE_BCACHE=1
    bcacheを有効にするかを指定します。
  • 1 のときは、bcacheを使用しません
  • 0のときは、bcacheを使用します
  • ADMIN_USER=PKYkc4HyWe
    管理者ユーザ名です。
  • ADMIN_PASSWORD=WMdT5roYtf4+Fn4NCJoGF38
    管理者パスワードです。
  • ADMIN_EMAIL=PKYkc4HyWe@localhost.localdomain
    管理者のメールアドレスです。

.kusanagi.httpd

環境設定ファイル .kusanagi.httpd は、ターゲット内のhttpdに関する環境変数を格納します。

  • NO_USE_FCACHE=1
    fcacheを有効にするかを指定します。
  • 1 のときは、fcacheを使用しません
  • 0のときは、fcacheを使用します
  • USE_SSL_CT=off
    SSL CT(Certificate Transparency )を有効にするかどうかを示します。on/off を指定します。
  • USE_SSL_OSCP=off
    SSL OCSP(Online Certificate Status Protocol)を有効にするかどうかを指定します。on/off を指定します。
  • NO_USE_NAXSI=1
    webアプリケーションファイアウォール NAXSIを使用するかどうかを指定します。
  • 1のときはNAXSIを使用しません
  • 0のときはNAXSIを使用します
  • NO_USE_SSLST=1
    SSL Strict-Transport を使用するかどうかを指定します。
  • 1のときはStrict-Transportを使用しません
  • 0のときはStrict-Transportを使用します
  • NO_SSL_REDIRECT=1
    http ポートでの接続をhttpsポートへリダイレクトするかどうかを指定します。
  • 1のときは、httpsへのリダイレクトを行いません
  • 0のときは、httpsへのリダイレクトを行います
  • EXPIRE_DAYS=90 expire_days を設定します(デフォルトは90日)。この設定はnginx使用時のみ有効です。
  • OSCP_RESOLV=8.8.8.8 OSCPを有効にする場合のDNSリゾルバを指定します。指定されない場合、GoogleのDNSサーバを使用します。
  • SSL_DHPARAM=”—–BEGIN DH PARAMETERS—–
    MIIBCAKCAQEAyrsuGPhV6lu+8BBTdAB+sQQhjsKgphkFOliauprDSTIqYQNhvJ1T
    (中略) fgEDDp2Dajuem6L9daTZhW2OI3pcp4pLcwIBAg== —–END DH PARAMETERS—– ” Diffie-Helman方式鍵交換の値を設定します。通常ファイル形式で提供されますが、ファイル内容の行末を空白1つに変換した値が入ります。この変数が空文字列の場合、nginx/httpdがSSLホスト鍵を再生成します。

.kusanagi.php

環境設定ファイル .kusanagi.phpは、ターゲット内のphpに関する環境変数を格納します。
現状では推奨値のままとなっていますが、php-fpmのチューニング時に使用できます。

  • #PHP_PORT=127.0.0.1:9000
    php-fpm デーモンのLISTENポートです。デフォルトでは、同じネットワークの9000番ポートとなります。
  • #PHP_MAX_CHILDLEN=500
    php-fpmデーモンが起動する、子プロセスの最大数です。
  • #PHP_START_SERVERS=10
    php-fpmデーモンが、最初に起動する子プロセスの数です。
  • #PHP_MIN_SPARE_SERVERS=5
    php-fpmデーモンが、アイドル時に起動する子プロセスの最小数です。
  • #PHP_MAX_SPARE_SERVERS=115
    php-fpmデーモンが、アイドル時に起動する子プロセスの最大値です。
  • #PHP_MAX_REQUESTS=500
    php-fpmデーモンが子プロセスを再起動するまで、実行するリクエスト数です。子プロセスのメモリ肥大化を防ぐ役割があります。

.kusanagi.mysql

環境設定ファイル .kusanagi.mysqlは、ターゲット内のdb(MySQL)に関する環境変数を格納します。

  • MYSQL_ROOT_PASSWORD=ilWP0p0w%ixV0hX8ue%OEW%
    MySQLのルートパスワード。
  • MYSQL_DATABASE=QqYz34Yqz9
    データベース名。
  • MYSQL_USER=U8jADnEqrG
    データベースのユーザ名。
  • MYSQL_PASSWORD=Q7LCraEJazpbc1+L4BD2WdB
    データベースのパスワード。
  • MYSQL_CHARSET=utf8mb4
    デフォルト文字セット。
  • #MYSQL_ALLOW_EMPTY_PASSWORD=
    エンプティパスワードを許すか。yes/noを指定します。
  • #MYSQL_RANDOM_ROOT_PASSWORD=
    ルートパスワードをランダムにするか。yes/noを指定します。
  • #SOCKET=
    ソケットファイル名を指定する。
  • #MYSQL_INITDB_SKIP_TZINFO=
    初回起動時に実行されるタイムゾーンテーブルのロードがスキップするか。yes/noを指定します。
  • #MYSQL_ROOT_HOST=
    rootユーザーとしてMySQLサーバーへアクセスできるようにするか。yes/noを指定します。

.kusanagi.db

環境設定ファイル .kusanagi.dbは、ターゲット内のDBアクセスするコンテナが使用する環境変数を格納します

  • DBLIB=/var/run/mysqld
    socket ファイルの場所。
  • DBHOST=localhost
    DBのホスト名。
  • DBNAME=QqYz34Yqz9
    データベース名。
  • DBUSER=U8jADnEqrG
    データベースのユーザ名。
  • DBPASS=Q7LCraEJazpbc1+L4BD2WdB
    データベースのパスワード。

.kusanagi.mail

環境変数.kusanagi.mailは、PHPからメール送信時に使用する環境変数を格納しています。phpイメージ内には、ssmtpというメール送信用のリレーサーバがインストールされています。この環境変数は、そのために使用します。デフォルトでは何も指定されていません。

  • #MAILSERVER=
    メールサーバ。
  • #MAILDOMAIN=
    ドメイン名。
  • #MAILUSER=
    メールユーザ。
  • #MAILPASS=
    SMTPAUTH時のパスワード。
  • #MAILAUTH=
    SMTPAUTHの方式。

終わりに

今回は、環境設定ファイルの内容について説明しました。次回は、RoDにおけるconfigコンテナの役割について説明しようと思います。次回をお楽しみに。

<< KUSANAGI RoDの使い方(3)(Dockerコラム)KUSANAGI RoDの使い方(6)~高速Dockerの話~ >>

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解