1.修改pom.xml
<properties>
<java.version>1.8</java.version>
<!--properties节点中设置docker镜像的前缀“springboot”-->
<docker.image.prefix>springboot</docker.image.prefix>
</properties>
在properties节点中加入<docker.image.prefix>springboot</docker.image.prefix>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- Docker maven 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>
在plugins中加入maven相关的依赖。
修改完pom文件后,打开Maven projects,先clean,然后package。
运行完后去项目目录下找到所生成的jar包。我这边生成的jar包名称为"shopping-0.0.1-SHAPSHOT.jar"。
注意:如果生成的jar包中含有大写字母,在docker中构造镜像时会报错。所以可以手动去修改生成jar的名称,也可以在pom文件中指定生成jar的名称。
在<build>中使用<finalName>标签可以指定生成jar的名。
<build>
<finalName>shopping</finalName>
</build>
2.编写Dockerfile
FROM java:8
VOLUME /tmp
ADD shopping.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
具体意义,自行百度。
3.构建镜像
将生成好的jar包和写好的Dockerfile文件放在服务器上的同一个目录下。
在控制台中定位到该目录下,然后运行“docker build -t jar包名 .”,jar包名改成自己的项目名称,注意后面还有个" 空格+."。然后回车。
等待下面所有进程跑完后,输入“docker images”,此时看镜像是否存在,如果存在证明没问题。
然后输入"docker run -d --name shopping -p 8080:8080 fa6be42b5a67",回车等待容器启动。
可以输入docker logs 容器名查看启动日志。里面基本上就是一些tomcat的启动日志,没有其它的。
等待项目成功启动,可以通过ip:8080进行访问。如果使用阿里云服务器,记得把端口开放。
4.总结
基本上也没啥子难点,按照这个流程下来都会成功。里面很多东西我也只是跟着配的,不知道原理是什么。如果有错误,还清大家指出。