..

15.docker,容器内时间问题

试了网上各种改/etc/timezone及相关的配置,添加TZ环境变量,添加-Duser.timezone,最终结果是,容器内的时区是正确的,但是时间是错误的。忙活了一下午,没有搞定,还是决定自己弄一个基础的镜像。

 

1.上传准备好的jdk(jdk-8u261-linux-x64.tar.gz)

 

2.编写dockerfile

FROM centos:7
MAINTAINER  lhnonline 0376lhn@gmail.com
ADD jdk-8u261-linux-x64.tar.gz /usr/local/
RUN yum install -y kde-l10n-Chinese && \
localedef -c -f UTF-8 -i zh_CN zh_CN.UFT-8 && \
echo 'LANG="zh_CN.uft8"' > /etc/locale.conf 

ENV JAVA_HOME /usr/local/jdk1.8.0_261
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
ENV TZ='Asia/Shanghai'
ENV LANG zh_CN.uft8

 

3.build

docker build -t manager62:7000/jdk8:1.0.0 .

 

4.查看结果发现自己弄得还小一点

 

 

5.上传到私有仓库

 

 

6.使用

FROM manager62:7000/jdk8:1.0.0

MAINTAINER lhnonline 0376lhn@gmail.com

COPY target/docker-test-1.0.0.jar  /app.jar

EXPOSE 8080

ENV CE=$CE
ENV JAVA_OPTS=$JAVA_OPTS


ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS  -Djava.security.egd=file:/dev/./urandom -jar /app.jar --spring.profiles.active=$CE" ]

 

7.最终效果:(时间显示正常了)

 


 

 

8.补充

通过命令 docker login ,登陆到docker hub,通过 docker push 镜像名称 把镜像推送到docker hub,以后就可以随时随地用了。

推送到docker hub上镜像的名称要符合规范, dockerhub账号+“/”+镜像名称+“:”+版本号 ,才能正常推送。另外推送完成后,可以给镜像标签改成latest,从新推送一下。以后使用的时候不用指定版本号了,默认是latest。

 


 

changelog:

2020-09-29: 添加对中文支持

 

posted @ 2020-09-25 19:39  罗浩楠  阅读(517)  评论(0)    收藏  举报
..