本人在开发一个新项目是用maven构建的,在本地开发完成后,要用docker打成镜像部署到容器
一下是简单的步骤,作为记录:
1:引入插件:见代码
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<imageName>${docker.hub.domain}/${docker.image.prefix}/${project.artifactId}:${docker.image.tag}</imageName>
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<serverId>docker-hub-registry</serverId>
</configuration>
</plugin>
增加以下的属性设置
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.cas.client.version>3.5.0</java.cas.client.version>
<java.version>1.8</java.version>
<docker.image.prefix>eduschool</docker.image.prefix>
<docker.image.tag>20190226</docker.image.tag>
<docker.plugin.version>0.4.13</docker.plugin.version>
<project.build.version>0.0.1</project.build.version>
<docker.hub.domain>hub.xuezone.com</docker.hub.domain>
</properties>
在上述代码中,指定了docker-file的位置 maven package命令就有了打镜像到本地的功能了
2.添加docker-file:
FROM hub.xxx.com/xuexi/java8:0010
VOLUME /tmp
ADD cms-0.0.1.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
EXPOSE 8086
以上文件中是docker需要执行的命令
3.执行docker
docker login 到对应的镜像库 到项目目录下执行 mvn clean package -DpushImage 命令即可生成镜像并push到远程镜像库