zoukankan      html  css  js  c++  java
  • SpringBoot 部署 docker 打包镜像

    SpringBoot 部署 docker 打包镜像

    环境:

      1、代码编写工具:IDEA

      2、打包:maven

      3、docker

      4、linux

      7、JDK1.8

      8、Xshell

      9、Xftp

    第一步:使用idea创建简单的springboot项目

    第二步:设置项目生成jar包(两种方式)

      1、修改pom文件

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.example</groupId>
        <artifactId>ordinary</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>ordinary</name>
        <description>Demo project for Spring Boot</description>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.6.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    
    </project>
    复制代码

      2、或者在生成项目的时候 可以选择jar和war

    第三步:使用maven 生成包 (使用idea不用命令 直接界面操作就可以(如果Maven设置没问题 直接就可以生成 包 log会提示生成后的文件目录))

    第四步:docker概念

      1、docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker。

      2、dockerfile:它是Docker镜像的描述文件,可以理解成火箭发射的A、B、C、D……的步骤。

      3、docker镜像:通过Dockerfile做出来的,包含操作系统基础文件和软件运行环境,它使用分层的存储方式。

      4、docker容器:是运行起来的镜像,简单理解,Docker镜像相当于程序,容器相当于进程。

    第四步:dockerfile指令

      Dockerfile由多条指令组成,每条指令在编译镜像时执行相应的程序完成某些功能,由指令+参数组成,以逗号分隔,#作为注释起始符,虽说指令不区分大小写,但是一般指令使用大些,参数使用小写

    第五步:dockerfile文件例子(我只是简单将springboot项目生成docker镜像没有什么多余配置)

    TODO:有一点需要注意的地方就是dockerfile文件没有任何后缀

    复制代码
    # Pull base image  
    FROM  java:8  
      
    MAINTAINER yihj "yihj@yinghaikeji.com"
      
    VOLUME /tmp
      
    # 添加 
    ADD ordinary.jar app.jar
    RUN bash -c 'touch /app.jar'
      
    
    # Define default command. 
    ENTRYPOINT ["java","-Dspring.profiles.active=online","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    
    #设置时区
    RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
    复制代码

    第六步:将dockerfile文件和生成好的jar 使用ftp工具上传到linux服务器 随便找个文件夹 放进去 jar和dockerfile在同级目录下

    第七步:使用 docker build -t ordinary:v1.0 .

      TODO:

        1、 最后面的这个 . 代表在当前目录下面寻找 dockerfile 文件

        2、ordinary 镜像名字

        3、v1.0版本

    第八步:查看镜像及启动

      1、使用docker images 来查看生成的镜像

      2、使用docker create 来创建容器 docker run 来创建并且运行容器

      3、也可以使用docker logs 容器名 --tail 100 -f 来查看项目启动日志 看项目是否启动

      3、如果上面步骤一切正常 可以直接调用IP加端口来访问项目

    通过Docker run命令定义Spring Profile

    可以将spring profile作为环境变量传递给docker run命令,使用 -e 标记。
    例如 -e “SPRING_PROFILES_ACTIVE=dev”会将dev profile传递给Docker容器

    docker run -d -p 8080:8080 -e "SPRING_PROFILES_ACTIVE=dev" --name rest-api dockerImage:latest

  • 相关阅读:
    Mac 删除Openfire
    FMDB使用
    豆瓣restful api 状态和错误码
    豆瓣开放api
    常用文字配色方案
    电商网站参考
    HP后端跨域HEADER头
    PHP统计 图表实现方法
    PHP 全过程教程和测试网
    Ajax技术在购物车中的应用(PHP篇)
  • 原文地址:https://www.cnblogs.com/zmsn/p/11697575.html
Copyright © 2011-2022 走看看