基于alpine构建docker镜像修改时区
基于alpine构建docker镜像修改时区
由于我们在push国外制作镜像使用时,时区就成为一个问题。国外时区一把都是UTC,需要改成国内时区CST.
复制宿主机的文件到docker容器
/usr/share/zoneinfo/Asia/Shanghai # 宿主机文件
/etc/localtime #容器文件
命令如下:
docker cp /usr/share/zoneinfo/Asia/Shanghai 【容器ID或者NAME】:/etc/localtime
这种方式每次重启容器都需要执行,所以采用第二种Dockerfile方式重新构造
dockerfile 文件内容如下
FROM ej52/alpine-nginx-php:latest
RUN echo 'http://mirrors.ustc.edu.cn/alpine/v3.5/main' > /etc/apk/repositories \
&& echo 'http://mirrors.ustc.edu.cn/alpine/v3.5/community' >>/etc/apk/repositories \
&& apk update && apk add tzdata \
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
docker build --rm -t ej52/alpine-nginx-php:latest .
这样就能重新构造一下docker镜像,增加了cst时区。
php环境下面还需要修改php.ini配置文件
把data.timezone = "UTC" 改成 data.timezone = "Asia/Shanghai" ,这样php获取时间才是正确的北京时间。