zoukankan      html  css  js  c++  java
  • 用docker部署springboot项目

    创建springboot项目,编写一个简单的hello world controller

    下面是效果图。

    下面是pom.xml 文件。

     1 <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">
     2   <modelVersion>4.0.0</modelVersion>
     3   <groupId>com.lmy</groupId>
     4   <artifactId>springboot-docker</artifactId>
     5   <version>0.0.1-SNAPSHOT</version>
     6   
     7     <parent>
     8         <groupId>org.springframework.boot</groupId>
     9         <artifactId>spring-boot-starter-parent</artifactId>
    10         <version>1.5.3.RELEASE</version>
    11         <relativePath />
    12     </parent>
    13 
    14     <properties>
    15         <java.version>1.8</java.version>
    16         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    17         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    18     </properties>
    19     <dependencies>
    20         <dependency>
    21             <groupId>org.springframework.boot</groupId>
    22             <artifactId>spring-boot-starter-web</artifactId>
    23         </dependency>
    24         <dependency>
    25             <groupId>org.springframework.boot</groupId>
    26             <artifactId>spring-boot-starter-test</artifactId>
    27             <scope>test</scope>
    28         </dependency>
    29     </dependencies>
    30     <build>
    31         <plugins>
    32             <plugin>
    33                 <groupId>org.springframework.boot</groupId>
    34                 <artifactId>spring-boot-maven-plugin</artifactId>
    35             </plugin>
    36         </plugins>
    37     </build>
    38 </project>
    View Code

    下面是目录结构。

    App.java代码

    package com.lmy.demo;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class App {
        public static void main(String[] args) {
            SpringApplication.run(App.class, args);
        }
    }

    HelloController.java代码

    package com.lmy.demo.controller;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("/hello")
    public class HelloController {
    
        @GetMapping("/hi/{name}")
        public String sayHello(@PathVariable String name){
            return "hi,"+name;
        }
    }

    将springboot项目打包成jar包。

    我是在pom中加入了maven build的plugin,右键project,选择Run As 选择maven build, 在goals中输入package

    控制台出现下面的字样表示打包成功,

    这时候在target文件夹中出现了build出来的jar包。

    将这个jar包拷贝到dockerfile文件的同一级目录。

    Dockerfile代码

    FROM java:8
    ENV REFRESHED_AT 2019-07-25
    ADD springboot-docker-0.0.1-SNAPSHOT.jar app.jar
    RUN sh -c 'touch /app.jar'
    ENV JAVA_OPTS=""
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

    运行下面的命令创建镜像
    sudo docker build -t lmy/springboot_v1 .
    运行下面的命令创建运行容器,
    sudo docker run -d -p 8085:8080 lmy/springboot_v1

    下面可以看到已经运行成功了。

  • 相关阅读:
    C++类的成员函数的指针和mem_fun适配器的用法
    C++ RTTI的使用
    C++特殊工具与技术之RTTI
    Linux组件封装之五:生产者消费者问题
    Linux组件封装之四:RAII实现MutexLock自动化解锁
    Linux组件封装之三:Thread
    Linux组件封装之二:Condition
    Linux组件封装之一:MUtexLock
    C++ socket与Flex as3通信的沙盒问题解决
    CentOS搭建PHP环境
  • 原文地址:https://www.cnblogs.com/liumy/p/11247667.html
Copyright © 2011-2022 走看看