1、背景: 使用docker进行项目部署流程。
2、项目结构:
就是是添加了一层目录,src/main/docker : Dockerfile,就是镜像文件规则,docker如何去生成这个应用的镜像
3、DockerFile配置:
FROM frolvlad/alpine-java:jdk8-slim AS builder
VOLUME /tmp
ADD demo-1.0.0-SNAPSHOT.jar appdemo.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /appdemo.jar" ]
文档解释说明可以网上参考
4、maven中POM配置
首先添加属性
<docker.image.prefix>springio</docker.image.prefix>
然后在添加插件配置
<!-- docker 插件 begin -->
<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>
<!-- docker 插件 en-->
5、把文件发布到服务器上在进行打包,因为需要docker环境
运行命令:
mvn clean package docker:build
打包成功之后可以运行docker images查看是否有该镜像文件
6、运行镜像的命令:
docker run -p 8082:8082 -t springio/demo
springio/demo 这个是查看镜像时的repository名称,就是当时配置的前缀
7、查看是否启动成功:
命令: docker ps
停止命令: docker stop id (进程号)