• docker部署springboot项目


    本篇是手动上传的,Harbor中有自动上传

    创建项目

    • pom.xml

      <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
          <parent>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-parent</artifactId>
              <version>2.1.9.RELEASE</version>
              <relativePath/> <!-- lookup parent from repository -->
          </parent>
          <groupId>com.topcheer</groupId>
          <artifactId>docker</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          <name>docker</name>
          <description>Demo project for Spring Boot</description><properties>
              <java.version>1.8</java.version>
              <docker.image.prefix>topcheer</docker.image.prefix>
          </properties><dependencies>
              <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>
                   <plugin>
                  <groupId>com.spotify</groupId>
                  <artifactId>docker-maven-plugin</artifactId>
                  <version>1.0.0</version>
                  <configuration>
                      <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                      <dockerDirectory>src/main/docker</dockerDirectory>
                      <resources>
                          <resource>
                              <targetPath>/</targetPath>
                              <directory>${project.build.directory}</directory>
                              <include>${project.build.finalName}.jar</include>
                          </resource>
                      </resources>
                  </configuration>
              </plugin>
              </plugins>
          </build></project>
    • 启动类

      @SpringBootApplication
      @Controller
      public class DockerApplication {
      ​
          public static void main(String[] args) {
              SpringApplication.run(DockerApplication.class, args);
          }
          
          @RequestMapping("/user/find")
          @ResponseBody
          public Object findUser(){
              Map<String, String > map = new HashMap<>();
              map.put("name", "xdclass.net");
              map.put("age","28");
              return map;
          }
      ​
      }

      由于harbor没有安装,无法把镜像推到私有镜像仓库上,所以先手动执行。

      mvn install,然后把dockerfile和jar包放到一起

      [root@topcheer docker]# ll
      总用量 16452
      -rw-r--r-- 1 root root      168 10月 28 14:24 Dockerfile
      -rw-r--r-- 1 root root 16842487 10月 28 14:17 docker.jar
      [root@topcheer docker]# cat Dockerfile
      FROM java:8
      VOLUME /tmp
      ADD docker.jar app.jar
      RUN bash -c 'touch /app.jar'
      EXPOSE 8080
      ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
      [root@topcheer docker]#

      编译成镜像并启动

      [root@topcheer docker]# docker build -f Dockerfile -t boot .
      Sending build context to Docker daemon 16.85 MB
      Step 1/6 : FROM java:8
       ---> d23bdf5b1b1b
      Step 2/6 : VOLUME /tmp
       ---> Running in 35037b5a7791
       ---> e96b96457c78
      Removing intermediate container 35037b5a7791
      Step 3/6 : ADD docker.jar app.jar
       ---> 06bcfdcff437
      Removing intermediate container 2e2e5e559ae4
      Step 4/6 : RUN bash -c 'touch /app.jar'
       ---> Running in 16441febc271
      ​
       ---> 1779caa23f77
      Removing intermediate container 16441febc271
      Step 5/6 : EXPOSE 8080
       ---> Running in 14dd752ce247
       ---> 505044f5cdf8
      Removing intermediate container 14dd752ce247
      Step 6/6 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
       ---> Running in 832e4ca95dd2
       ---> 1cb7bd139478
      Removing intermediate container 832e4ca95dd2
      Successfully built 1cb7bd139478
      [root@topcheer docker]# docker images
      REPOSITORY                                             TAG                 IMAGE ID            CREATED              SIZE
      boot                                                   latest              1cb7bd139478        About a minute ago   677 MB
      registry.cn-hangzhou.aliyuncs.com/dalianpai/topcheer   zipkin              17c2bb09f482        6 days ago           154 MB
      docker.io/mysql                                        latest              c8ee894bd2bd        11 days ago          456 MB
      elasticsearch                                          latest              874179f19603        4 weeks ago          771 MB
      docker.io/nacos/nacos-server                           latest              a4229ac5cc19        4 weeks ago          710 MB
      springbootdemo4docker                                  latest              cd13bc7f56a0        5 weeks ago          678 MB
      docker.io/tomcat                                       latest              ee48881b3e82        6 weeks ago          506 MB
      docker.io/rabbitmq                                     latest              a00bc560660a        6 weeks ago          147 MB
      docker.io/centos                                       latest              67fa590cfc1c        2 months ago         202 MB
      docker.io/redis                                        latest              f7302e4ab3a8        2 months ago         98.2 MB
      docker.io/rabbitmq                                     3.7.16-management   3f92e6354d11        3 months ago         177 MB
      docker.io/elasticsearch                                6.8.0               d0b291d7093b        5 months ago         895 MB
      docker.io/hello-world                                  latest              fce289e99eb9        10 months ago        1.84 kB
      docker.io/java                                         8                   d23bdf5b1b1b        2 years ago          643 MB
      [root@topcheer docker]# docker run -d -p 8080:8080 boot
      882ff5209aa2f40972a914b901750a50320faea65100b33e57b9c8a41533ca0b

      测试

       

  • 相关阅读:
    C#解析Json数据(利用Newtonsoft.Json库)
    巧妙解决百度地图加偏纠偏问题
    sql 日期时间函数+格式转换
    遇到sql server 遇到以零作除数错误
    js实现鼠标移到链接文字弹出一个提示层的方法
    sql语句 如何判断A表中的a列数据是否在B表中的b列中存在
    MVC使用Gantt Chart实现甘特图,管理事情进度
    jQueryGantt—集变态与惊艳于一身
    自动化测试
    小程序测试及一些限制
  • 原文地址:https://www.cnblogs.com/dalianpai/p/11752311.html
Copyright © 2020-2023  润新知