作者 |
LanceLi
来源 | urlify.cn/eQvaea
66套java从入门到精通实战课程分享
一、环境 | 步骤
-
使用的虚拟机安装Ubuntu20.04,Ubuntu里面安装了docker,还需要安装JDK和Maven
-
在Win10上的Idea写好一个SpringBoot的Demo项目打包后传到Ubuntu中
-
先用mvn package打包项目并运行 测试项目是否能成功跑起来
-
最后用mvn package docker:build 打成Docker镜像
-
注意事项(看了其他的博客,然后打镜像的时候报各种异常):
-
项目名也就是artifactId最好也是小写
-
docker镜像名最好要小写
二、新建一个SpringBoot项目
2.1pom.xml
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.0.4.RELEASEversion>
parent>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
dependencies>
<properties>
<docker.image.prefix>dockerdemoservicedocker.image.prefix>
properties>
<build
>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
<plugin>
<groupId>com.spotifygroupId>
<artifactId>docker-maven-pluginartifactId>
<version>1.0.0version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}imageName>
<dockerDirectory>src/main/dockerdockerDirectory>
<resources>
<resource>
<targetPath>/targetPath>
<directory>${project.build.directory}directory>
<include>${project.build.finalName}.jarinclude>
resource>
resources>
configuration>
plugin>
plugins>
build>
2.2启动类
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
2.3Controller
@RestController
public class DockerController {
@GetMapping("/docker")
public String getString() {
return "dockerDemo is run";
}
}
2.4在src/main下新建一个docker的目录
也就是src/main/docker。注意是目录不是package
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD dockerdemoservice-1.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
三、打docker镜像
-
项目打压缩包放到Ubuntu里
正常的应该是用git或svn拉代码,这里为了方便直接copy到服务器里