zoukankan      html  css  js  c++  java
  • spring boot项目生成docker镜像并完成容器部署

    把spring boot项目生成的jar打成docker镜像并生成docker容器完成部署是比较简单方便的部署方式,而且部署过程很少会出错。

    部署步骤

    1.利用maven或者gradle完成打包工作,打成jar包的形式。

    2.在项目中的任意位置创建Dockerfile文件,本人的文件如下:

    FROM java:8
    VOLUME /tmp/backend
    ADD gams2_house.war-1.0.0-SNAPSHOT.war gams2_house.jar
    RUN bash -c 'touch /gams2_house'
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","gams2_house.jar","--spring.config.location=/data/config/ymls/backend/application.yml"]

    FROM java:8      是指含有jdk1.8的镜像

    VOLUE /tmp   目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp/backend 作为工作目录

    ADD gams2_house.war-1.0.0-SNAPSHOT.war gams2_house.jar     添加自己的项目到到gams2_house.jar 中,注意:这里的包名要和pom文件中的包名一致。

    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/gams2_house.jar","--spring.config.location=/data/config/ymls/backend/application.yml"]        ENTRYPOINT是指容器运行后默认执行的命令,指定yml配置文件。

    3.上传自己的项目和Dockerfile文件到虚拟机,可以放在同一个目录下面

    4.创建自己的镜像

     docker build -t gams2_house:1.0-SNAPSHOT .   注意后面是有个点!

     显示创建成功,查看下镜像。

      

    现在镜像就创建成功了。

    5.生成docker容器

     docker run -d -p 8080:8080 --name gams2_house gams2_house:1.0-SNAPSHOT

    -d:后台运行容器

    -p 8080:8080 宿主机的端口和docker容器中的端口做映射

    gams2_house 自定义的容器名称

    gams2_house:1.0-SNAPSHOT镜像名称和对应版本,如果没有指定版本,默认会去寻找lastest版本。

     生成了容器的id,docker ps -a查看是否存在gams2_house容器。

    portainer也能看到生成了相应的容器和运行情况

     生成了容器,

  • 相关阅读:
    前端有未来吗?
    谈技术人员思维转变
    程序员职场背锅甩锅指南
    9 个非常实用的网络调试命令,你会用几个呢?
    nginx获取客户端请求的真实IP
    10个VSCode高效开发插件
    作为一个技术Leader,要如何去提升团队的技术氛围
    前端程序员要懂的 UI 设计知识
    【云速建站】如何实现多用户权限管理
    补习系列(10)-springboot 之配置读取
  • 原文地址:https://www.cnblogs.com/xiangpeng/p/14102816.html
Copyright © 2011-2022 走看看