我有一个简单输出时间的php文件:
<?php
// 获取当前时间
$current_time = date('Y-m-d H:i:s');
// 输出当前时间
echo "当前时间:".$current_time;
?>
我自己构建了一个dockerfile文件上传部署:
FROM php:8.0.9-apache
# 设置工作目录
WORKDIR /app
# 将 centos 的 /usr/share/zoneinfo/Asia/Shanghai 复制到容器的 /etc/localtime
#COPY --from=centos /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 在容器内执行命令,将 "Asia/Shanghai" 写入 /etc/timezone
#RUN echo "Asia/Shanghai" > /etc/timezone
# 将 index.php 文件复制到容器的 /var/www/html/
COPY index.php /var/www/html/
# 在容器内执行命令,将 "$PHP_INI_DIR/php.ini-development" 重命名为 "$PHP_INI_DIR/php.ini"
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
# 设置容器启动时执行的命令,这里是启动 apache
CMD ["apachectl", "-DFOREGROUND"]
自己是新手,网上找的一些设置的方法都没有生效,一直相差八个小时,希望有大神可以帮我看看,感谢
容器系统时间默认为 UTC 协调世界时间 (Universal Time Coordinated),与本地所属时区 CST (上海时间)相差 8 个小时:
在构建基础镜像或在基础镜像的基础上制作自定义镜像时,在 Dockerfile 中创建时区文件即可解决单一容器内时区不一致问题,且后续使用该镜像时,将不再受时区问题困扰。
1. 打开 Dockerfile 文件。
2. 写入以下内容,配置时区文件
FROM centos ascentos
COPY --from=centos /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai"> /etc/timezone
3.重新构建容器镜像,使用新的镜像重新部署。或直接上传含新的 Dockerfile 的代码包重新部署