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