构建 JDK8 镜像

构建 JDK8 镜像

下载 JDK8

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

image-20201027185030923

创建镜像的构建目录 base_jdk8,并且将 JDK8 上传到服务器

image-20201027185401601

编辑创建 Dockerfile

 
  1. # Using Centos for base image

  2. FROM centos:7

  3.  
  4. # author label

  5. LABEL maintainer="Aron.li"

  6.  
  7. # install timezone gcc

  8. ENV ENVIRONMENT DOCKER_PROD

  9. RUN cd / && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \

  10. && yum makecache \

  11. && yum install -y wget aclocal automake autoconf make gcc gcc-c++ python-devel mysql-devel bzip2 libffi-devel epel-release \

  12. && yum clean all

  13.  
  14. # cd /opt

  15. WORKDIR /opt

  16.  
  17. # copy jdk8 to /opt, and decompression

  18. ADD jdk-8u271-linux-x64.tar.gz /opt

  19.  
  20. # set jdk8 env

  21. ENV JAVA_HOME=/opt/jdk1.8.0_271

  22. ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

  23. ENV PATH=$JAVA_HOME/bin:$PATH

  24.  
  25. # exec java -version

  26. CMD ["java","-version"]

构建镜像

docker build -f Dockerfile -t base_jdk8:v1.0 .

执行如下:

image-20201027191035881

生成镜像如下:

image-20201027191212996

启动镜像,测试java环境

编写一个启动镜像的脚本 restart_service.sh

 
  1. basedir=`pwd`

  2.  
  3. name='base_jdk8'

  4. image='base_jdk8:v1.0'

  5. docker stop $name

  6. docker rm $name

  7. docker run -it --privileged=true --name $name $image /bin/bash

测试如下:

image-20201027191259441

基于 JDK8 的镜像,构建SpringBoot服务

上传 SpringBoot 的 jar 包

image-20201027193505484

编辑创建 Dockerfile

 
  1. # Using JDK8 for base image

  2. FROM base_jdk8:v1.0

  3.  
  4. # author label

  5. LABEL maintainer="Aron.li"

  6.  
  7. # install timezone gcc

  8. ENV ENVIRONMENT DOCKER_PROD

  9. RUN cd / && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  10.  
  11. # cd /opt

  12. WORKDIR /opt

  13.  
  14. # copy jar to /opt, and decompression

  15. ADD autotest-0.0.1-SNAPSHOT.jar /opt

  16.  
  17. # exec java -jar autotest-0.0.1-SNAPSHOT.jar

  18. CMD ["java","-jar","autotest-0.0.1-SNAPSHOT.jar"]

构建镜像

docker build -f Dockerfile -t autotest:v1.0 .

启动镜像服务

编写一个启动镜像的脚本 restart_service.sh

 
  1. #!/bin/bash

  2. basedir=$(cd `dirname $0`;pwd)

  3. host_ip=`python -c "import socket;print([(s.connect(('8.8.8.8', 53)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1])"`

  4.  
  5.  
  6. name='autotest'

  7. image='autotest:v1.0'

  8. docker stop $name

  9. docker rm $name

  10. #docker run -it --name $name $image /bin/bash

  11.  
  12. docker run -d --name $name -p 8080:8080 -h $name \

  13. --add-host=mysql_host:$host_ip \

  14. --add-host=mongo_host:$host_ip \

  15. --add-host=redis_host:$host_ip \

  16.  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值