今回はDockerfileその②として、ENV・COPYコマンドを学習します。
[実践フェーズ]
環境変数(Timezone = Aisa/Tokyo)、クエリログ設定をしたMySQLのコンテナを立ち上げます。
タイムゾーンを設定することで、ログ出力の時間を日本時間に設定することが可能です。
また、クエリログの出力をmy,confで定義し、そのファイルをコンテナの中にコピーして反映を行います。
準備ファイル
my.conf(クエリログ設定)
[mysqld]
general_log = 1
general_log_file = /var/log/query.log
Dockerfile(MySQL8.2.0+環境変数+設定ファイル適用)
FROM mysql:8.2.0
ENV TZ=Asia/Tokyo
COPY ./my.conf /etc/my.conf
コンテナ起動・確認
Dockerイメージのビルド
docker build -t mysql-log-demo .
コンテナの起動(データボリューム&ログ確認のため)
docker run -d --name mysql-log-container -e MYSQL_ROOT_PASSWORD=password mysql-log-demo
コンテナに入って確認
docker exec -it mysql-log-container bash
cat /var/log/query.log
動作確認:ログに残るクエリを実行
docker exec -it mysql-log-container mysql -uroot -ppassword -e "SHOW DATABASES;"
その後再度ログを確認して、SHOW DATABASES
が記録されていればOK。