通过Dockerfile构建java项目镜像

14 篇文章 0 订阅

准备条件:

  • Centos7 虚拟机 + docker软件运行环境
  • 可执行的java项目jar包
    注:如果不知道如何获取一个可执行的jar包,点我→这里的第二个方法
涉及到的三个文件:
  • Dockerfile
  • es-0.0.1-SNAPSHOT.jar
  • start.sh (非必需)
Dockerfile:
# 依赖的基础镜像
FROM docker.io/itoak/java8:1.0.0
# 作者信息
MAINTAINER itoak <www.itoak.cn>
# 容器启动后的工作目录
WORKDIR /opt
# 将jar包添加到容器内
ADD es-0.0.1-SNAPSHOT.jar es-0.0.1-SNAPSHOT.jar
# 将脚本添加到容器内
ADD start.sh start.sh
# 容器启动后 执行命令
CMD sh start.sh -j es-0.0.1-SNAPSHOT.jar
es-0.0.1-SNAPSHOT.jar功能代码(示例):
public class EsApplication {
    public static void main(String[] args) throws InterruptedException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        while(true){
            System.out.println("当前时间:" + sdf.format(new Date()));
            Thread.sleep(1000l);
        }
    }
}

该代码就是简单打印当前时间

start.sh脚本文件:
#!/bin/bash
# 读取参数
while getopts "j:h" arg
do
        case $arg in
        j)
         JAR=$OPTARG
         echo "jar is $JAR"
         ;;
        h)
         echo "-j jar"
         echo "-h help"
         exit 1
         ;;
        ?)
         echo "unknow argument"
         exit 1
         ;;
         esac
done
# 运行jar包 并将日志输出到app.log文件中
java -jar $JAR &> app.log

将上面三个文件放在同一个目录下面,然后执行docker命令:

 docker build -t itoak/app:1.0.4 .

上面的镜像包含name:tag,即itoak/app:1.0.4, 注意最后的小点,表示从当前目录寻找Dockerfile构建,也可以写全路径:docker build -t itoak/app:1.0.4 /root/service/

命令执行完毕后,即可输入docker images命令查看到你构建成功的镜像了:
在这里插入图片描述
输入命令,即可运行容器:

docker run -d itoak/app:1.0.4

查看容器:docker ps -a
容器
查看项目日志输出:

docker exec -it 9773cda55108 tail -f app.log

结果如图:
在这里插入图片描述
容器正常运行,且项目日志如期输出。

这里只是简单介绍了,如何构建一个的java镜像。需要思考的问题还有很多,多学习,多思考,每天进步一点点。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值