我的Dockerfile是:
FROM gliderlabs/alpine:3.3
RUN set -x \
&& buildDeps='\
python-dev \
py-pip \
build-base \
' \
&& apk --update add python py-lxml py-mysqldb $buildDeps \
&& rm -rf /var/cache/apk/* \
&& mkdir -p /app
ENV INSTALL_PATH /app
ENV TZ=Asia/Shanghai
WORKDIR $INSTALL_PATH
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
COPY requirements-docker.txt ./
RUN pip install -r requirements-docker.txt
COPY . .
RUN apk del --purge $buildDeps
ENTRYPOINT ["celery", "-A", "tasks", "worker", "-l", "info", "-B"]
我将时区设置为Asia/Shanghai
,但它不起作用,并给我的UTC有8小时的偏差,结果是:
2016-01-24 11:25:07:[2016-01-24 03:25:07,893: WARNING/Worker-2] 2016-01-24 03:25:07.892718
2016-01-24 11:25:08:[2016-01-24 03:25:08,339: INFO/MainProcess] Task tasks.crawl[98c9a9fc-0817-45cb-a2fc-40320d63c41a] succeeded in 0.447403368002s: None
2016-01-24 11:27:07:[2016-01-24 03:27:07,884: INFO/Beat] Scheduler: Sending due task spider (tasks.crawl)
然后我尝试了其他方法,如:
RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
和
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
没有一个能用,怎么能设置时区呢?2非常感谢。
4条答案
按热度按时间llycmphe1#
通常的解决方法是挂载
/etc/localtime
,如问题3359中所示同样的线程提到(虽然是基于ubuntu的图像),但你已经尝试过了。
(And(第10页)
另一个选择是使用
builder/scripts/mkimage-alpine.bash
构建您自己的gliderlabs/docker-alpine
映像。该脚本允许您设置时区。
您可以看到Digital Ocean: Alpine Linux中使用的映像构建器脚本:
生成Alpine根文件系统
gliderlabs/docker-alpine
。一旦您在自己的文件系统上有了
rootfs.tar.gz
,您就可以使用它(作为mentioned here)构建您自己的Alpine映像,其中包含以下Dockerfile:一旦建立,您可以使用正确时区的Alpine图像。
vojdkbi02#
//停靠文件
qojgxg4l3#
我在Mac莫哈韦上运行我的Docker,在Dockerfile中,我在多次尝试失败后添加了以下内容:
ENV TZ=亚洲/上海
运行-snf /usr/共享/区域信息/$TZ /etc/本地时间&& echo $TZ〉/etc/时区&&
apt-get安装tzdata &&
dpkg-重新配置-前端非交互式tzdata
它工作正常。
wkyowqbh4#
要在Dockerfile中设置时区,您可以使用这些行