aws

【A-29】Dockerfile②

今回は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。