我们都喜欢用 alphine 的镜像做底包,来生产自己的镜像

alphine 的底包的时间设定就非常重要了

直接给出 Dockerfile

FROM alpine:3.12

# latest certs
RUN apk add ca-certificates --no-cache && update-ca-certificates

# timezone support
ENV TZ=Asia/Shanghai
RUN apk add --update tzdata --no-cache &&\
    cp /usr/share/zoneinfo/${TZ} /etc/localtime &&\
    echo $TZ > /etc/timezone

# install chrony and place default conf which can be overridden with volume
RUN apk add --no-cache chrony && mkdir -p /etc/chrony
COPY chrony.conf /etc/chrony/.

# port exposed
EXPOSE 123/udp

# start
CMD [ "/usr/sbin/chronyd", "-d", "-s"]

时间设定重要的就是下面这几行

# timezone support
ENV TZ=Asia/Shanghai
RUN apk add --update tzdata --no-cache &&\
    cp /usr/share/zoneinfo/${TZ} /etc/localtime &&\
    echo $TZ > /etc/timezone

还有如果在 image: maven:3.5-jdk-8-alpine 这种镜像里,无论怎么改时间都不是东八区,可以试试下面的命令:

export COMMIT_TIME=$(TZ=CST-8 date +%F-%H-%M)