spring boot 项目打包成 docker镜像 最简Demo

Github地址
https://github.com/ygsama/test-project/tree/spring-boot-dockerfile-demo
本例在spring-boot-dockerfile-demo分支

新建一个gradle项目,以下是build.gradle配置

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath('org.springframework.boot:spring-boot-gradle-plugin:2.1.3.RELEASE')
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'

apply plugin: 'org.springframework.boot'

bootJar {
    baseName = 'test-project'
    version = '1.0.2'
}

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8


dependencies {
    compile("org.springframework.boot:spring-boot-starter-web:2.1.3.RELEASE")
}

Spring Boot 代码

@SpringBootApplication
@RestController
public class Application {

    @RequestMapping("/")
    public String home() {
        return "Hello Docker World.";
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

Dockerfile放在项目根目录下

FROM anapsix/alpine-java:8_server-jre_unlimited
VOLUME /tmp
ADD build/libs/test-project-1.0.2.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

打包

# jar包产出在./build/libs
gradle bootjar
cp Dockerfile ./build/libs
docker build -t ygsama/test-project:1.0.2 ./build/libs

运行

# 查看打包的镜像
dcoker images

# 运行镜像 -p 指定端口,左边是宿主机端口,右边是容器内端口
docker run -d -p 8080:8080 ygsama/test-project:1.0.2


# 运行镜像 -d 以守护进程方式启动
docker run -d -p 8080:8080 ygsama/test-project:1.0.2

原创文章 95 获赞 219 访问量 29万+

猜你喜欢

转载自blog.csdn.net/zimou5581/article/details/94020618