这里只列举目前用到的两种系统镜像 ubuntu 和 alpine 的时区配置方法。
宿主机为 Ubuntu。
ubuntu 镜像
这里以 rasa 的 ubuntu 镜像为例:
timezone 和 localtime 文件映射一下宿主机的就可以了。 所以,前提是宿主机的配置是正确的。
action_server:
image: rasa/rasa:3.4.6-full
ports:
- 5055:5055
environment:
- ACTION_SERVER_SANIC_WORKERS=4
volumes:
- ./:/app
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
command:
- run
- actions
alpine 镜像
以 redis Alpine 镜像为例:
其中 TZ 即为时区值
redis:
image: redis:6.2.13-alpine
restart: on-failure
environment:
- TZ=America/Phoenix
ports:
- 6379
command: redis-server --maxmemory 200M --maxmemory-policy allkeys-lru
volumes:
- /some_path/redis_data:/data
或
FROM alpine:latest
RUN apk add --no-cache tzdata
ENV TZ=Europe/Copenhagen
参考:
https://stackoverflow.com/questions/68996420/how-to-set-timezone-inside-alpine-base-docker-image
/etc/timezone 与 /etc/localtime
以国内的阿里云服务器上的默认配置为例:
$ cat /etc/timezone
Asia/Shanghai
$ ls -lah /etc/localtime
/etc/localtime -> /usr/share/zoneinfo/Asia/Shanghai
$ date
Fri 06 Oct 2023 08:47:59 PM CST
而 localtime 文件则是一个二进制文件,不具有可读性。
$ cat /etc/localtime
TZif2
:
ϏuX
LMTMDTMSTMWTTZif2
^
:ˉ
ϏЁuX
LMTMDTMSTMWT
MST7
参考
- https://cloud.tencent.com/developer/article/1626811
- https://www.jianshu.com/p/43e5d72b0f63
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式