Dockerfile精编细作(五)编辑可应用到正式环境的Dockerfile并构建java项目

java项目

在这里插入图片描述
在这里插入图片描述

构建Dockerfile

  • 在root目录下创建目录 mkdir myproject

  • 进入myproject创建Dockerfile文件

  • 将可运行的jar包复制到myproject目录下。点击下载可用jar包

  • 编写Dockerfile,vim Dockerfile或 vi Dockerfile

    • 此centos-jdk是Dockerfile精编细作(四)中的镜像,生产环境可以自己重新编辑定制一个使用自己环境的镜像,因此镜像不支持中文,会出现中文乱码
    • 需要的是jar 需要与Dockerfile在同一个目录下,否则需要指定jar包路径

      ADD /root/myproject/$APP_NAME-1.0.0.jar /home/admin/$APP_NAME/$APP_NAME-1.0.0.jar

    在这里插入图片描述

    # 基于centos镜像
    FROM centos-jdk8
    # 创建别名即项目名称
    ENV APP_NAME demo
    # 创建用户的主目录 不要将此用户添加到最近登录和登录失败数据库
    RUN adduser -create-home --no-log-init --shell /bin/bash admin
    # 指定容器启动的用户
    USER admin
    # 输出结果到/home/admin/start.sh文件中;
    # “chmod +x”:/home/admin/start.sh给执行的权限;
    # “mkdir -p”:递归创建logs目录;
    # “chmod -R 777”:将当前目录下所有文件及目录和目录下的文件权限修改成可读可写可执行
    RUN echo “java -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms128m -Xmx128m -Xmn128m -Xss512k ->XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar /home/admin/$APP_NAME/$APP_NAME->1.0.0.jar”>>/home/admin/start.sh &&
    chmod +x /home/admin/start.sh &&
    mkdir -p /home/admin/logs/ &&
    chmod -R 777 /home/admin/logs/

    # 将需要执行的包文件copy到执行目录中
    ADD $APP_NAME-0.0.1.jar /home/admin/$APP_NAME/$APP_NAME-1.0.0.jar
    # logs文件夹数据的持久化
    VOLUME /home/admin/logs/
    # 设置工作目录
    WORKDIR /home/admin/
    # 容器启动时要执行的命令
    CMD [“sh”,"/home/admin/start.sh"]
    # 对外暴漏端口 纯提示作用
    EXPOSE 8080

  • 构建镜像 docker build -it demo .

  • 查看镜像
    在这里插入图片描述

  • 运行镜像 docker run -d -p 8080:8080 demo
    在这里插入图片描述

  • 执行查询接口,检查是否可以成功访问
    在这里插入图片描述

  • 进入容器查看日志
    在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值