收藏
回答

<云托管问题>php上传部署后云托管的时区问题?

我有一个简单输出时间的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"]


自己是新手,网上找的一些设置的方法都没有生效,一直相差八个小时,希望有大神可以帮我看看,感谢


最后一次编辑于  2023-08-28
回答关注问题邀请回答
收藏

1 个回答

  • showms
    showms
    2023-08-29

    容器系统时间默认为 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 的代码包重新部署


    2023-08-29
    有用 2
    回复
登录 后发表内容
问题标签