您当前的位置: 首页 >  docker

水的精神

暂无认证

  • 1浏览

    0关注

    711博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

使用DockerFile的方式快速构建一个基础镜像,解决中文环境问题,解决时区问题,包括jdk环境

水的精神 发布时间:2020-09-23 10:32:04 ,浏览量:1

其实使用Docker,虽然简单了,但是也不是我们想象中那么简单,如果没有人带的话,有许多问题都需要自己踩坑。

比方说,想要在基础镜像里边部署我们的java项目,拉取下来的基础镜像,其实是最简单的内核,没有jdk,没有中文环境,这个表现出来的就是中文乱码。更严重的是,如果项目想要创建中文的文件夹,或者文件,就会变成问号,导致项目出问题。还有就是如果在里边部署数据库,我们的项目在根据服务器获取时间的话,写入到数据库,就会出现时间不对的情况,我遇到的是差一个时区,六个小时。

  上边的问题,如果一步一步的搜解决方案,虽然最终能解决,但是很浪费时间。

  所以在这里,我提供一个DockerFile的方式来构建一个基础的服务。

  三步走,完成构建

DockerFile文件
  • 第一步下载 java需要的环境包,jdk环境。

  为了减少麻烦,我已经将我用的 JDK上传到了百度网盘上,可以通过链接下载。

  链接:https://pan.baidu.com/s/1L7LD097m2Xp71nYmleyczQ    提取码:ud3y

  不知道如果想要使用其他版本的JDK,请看这篇文章:https://blog.csdn.net/weixin_37352094/article/details/80372821

  进行JDK的下载,然后新建一个文件夹,把下载好的tar包放在新建的文件夹下。

  • 第二步编写DockerFile
vim DockerFile

  注意,如果你下载的jdk环境,不是这个版本的,需要修改下边的 jdk相关的内容。如果是使用我提供的JDK,则下边的内容一行都不需要改。

FROM ubuntu
# jdk 环境
COPY jdk-8u181-linux-x64.tar.gz /opt/source/jdk-8u181-linux-x64.tar.gz
# 解决时区问题
RUN apt-get update \
    && apt-get -y install vim \
    && apt-get -y install language-pack-zh-hans \
    && apt-get install -y tzdata \
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone \
    && cd /opt/source \
    && tar -zxvf jdk-8u181-linux-x64.tar.gz \
    && rm -rf jdk-8u181-linux-x64.tar.gz
# 解决中文环境问题
ENV LANG="zh_CN.UTF-8"
RUN echo "export LC_ALL=zh_CN.UTF-8"  >>  /etc/profile &&  echo "export LC_ALL=zh_CN.UTF-8" >>/root/.bashrc
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
# 配置jdk
ENV JAVA_HOME /opt/source/jdk1.8.0_181
ENV PATH $PATH:$PATH:$JAVA_HOME/bin

 最终的结构是:

 

  • 第三步,使用DockerFile 构建镜像

 根据dockerFile 构建成镜像,不要忽略最后的点

docker build -t basic-ubuntu:latest .

其中 basic-ubuntu:latest 代表的是镜像的标签 . 代表的是当前文件夹

关注
打赏
1664074814
查看更多评论
立即登录/注册

微信扫码登录

0.0410s