まとめ
FROM debian:stretch-slim なイメージはこれで OK でした。
例えば、今回設定したのは次です。
- php:apache
 - mysql:latest
 
FROM mysql:latest
ARG TZ=UTC
ENV TZ ${TZ}
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
COPY ./config-file.cnf /etc/mysql/conf.d/
${TZ} は、docker-compose.yml で定義しました。args と environment です。
${WORKSPACE_TIMEZONE} は、.env ファイルで定義しています。
services:
  php_apache:
    build:
      context: ./php_apache
      args:
        TZ: ${WORKSPACE_TIMEZONE}
    environment:
      - TZ=${WORKSPACE_TIMEZONE}
... 略 ...
解説
$TZ = Japan と仮定して進めます。
ln -snf /usr/share/zoneinfo/Japan /etc/localtime
シンボリックリンクを、/etc/localtime に貼ることでタイムゾーンを変更します。
日本語にするには、Japan または Asia/Tokyo としますが、後者は Asia/Tokyo へのシンボリックリンクのようです。
したがって、どちらを指定しても良いのでしょう。
root@c53ac240481e:/var/www/html# ls -al /usr/share/zoneinfo/Japan -rw-r--r-- 1 root root 318 May 5 03:22 /usr/share/zoneinfo/Japan root@c53ac240481e:/var/www/html# ls -al /usr/share/zoneinfo/Asia/Tokyo lrwxrwxrwx 1 root root 8 May 5 03:22 /usr/share/zoneinfo/Asia/Tokyo -> ../Japan root@c53ac240481e:/var/www/html#
echo Japan > /etc/timezone
こちらも、タイムゾーン設定です。/usr/share/zoneinfo/ にあるタイムゾーンを /etc/timezone に書き込むことで設定できます。
なぜ 2 箇所で設定?と思いますが、次のページが参考になりました。
いろいろ調べたこと
MySQL と PHP のイメージってdのイメージをもとにしているの?
debian:stretch-slim でした。
- php/Dockerfile at f363b9f8a0e23e79faaa624ff5bf160b9dec18f4 · docker-library/php
 - mysql/Dockerfile at b39f1e5e4ec82dc8039cecc91dbf34f6c9ae5fb0 · docker-library/mysql
 
タイムゾーンってどうやって調べればいいの?
date コマンドでわかるのでした。
root@c53ac240481e:/var/www/html# date Wed Oct 17 07:50:21 JST 2018 root@c53ac240481e:/var/www/html#
これは、変更後の出力で、JST となっています。
タイムゾーン設定ってどうすればいいの?
この方法は今回のコンテナでは使えませんでした。。。
おわりに
今回設定したのは、Laradock でタイムゾーン設定をしていたからでした。
タイムゾーンを設定しなければ、また、コンテナごとに異なっていたら、どんな嫌なことがあるだろうと思いましたが、それは次のページが参考になりました。
イメージの元イメージをを調べて、それにあったタイムゾーンを設定する、という手順で、使用するすべてのイメージのタイムゾーンを統一するのが無難かなと思っています。
以上です。
