我手动编写了dockerfile,但现在我需要配置maven来创建该文件并构建映像。我正在尝试使用spotify的maven插件。
这是dockerfile,由我编写并且有效:
FROM tomcat:8.0-jre8
RUN rm -rvf /usr/local/tomcat/webapps/ROOT
COPY ./context.xml /usr/local/tomcat/conf/
COPY /target/brainis-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/ROOT.war
CMD ["catalina.sh", "run"]
EXPOSE 8080
我需要确保我的maven插件在构建映像之前生成相同的docker文件。你能告诉我如何实现它吗?我当前的配置只生成第一个命令FROM tomcat:8.0-jre8
,如何在maven中配置该文件的其余部分?
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<configuration>
<imageName>spring-tomcat</imageName>
<baseImage>tomcat:8.0-jre8</baseImage>
</configuration>
</plugin>
答案 0 :(得分:3)
您需要将Dockerfile
添加到您的代码库,即/src/main/docker/Dockerfile
,并以这种方式从Spotify的Maven插件中引用它:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>${docker.plugin.version}</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.war</include>
</resource>
</resources>
</configuration>
</plugin>
最后一部分,资源,将docker构建基本路径放在您想要的任何文件夹中,即/target
以及要包含的文件。
这将运行您的整个Dockerfile
脚本