我已经创建了一个简单的Micronaut应用程序,使用
mn创建应用程序app_name--构建maven
用JDK 11以防万一。
这将创建一个maven项目,该项目可以很好地编译,但包含一个Dockerfile
,如下所示:
FROM adoptopenjdk/openjdk11-openj9:jdk-11.0.1.13-alpine-slim
COPY target/app_name*.jar app_name.jar
EXPOSE 8080
CMD java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -Dcom.sun.management.jmxremote -noverify ${JAVA_OPTS} -jar app_name.jar
但是,Maven AFAICT中没有docker构建。
所以我包括了这个
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${dockerfile-maven-version}</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<repository>dockerUser/app_name</repository>
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
它确实能够构建docker映像,但不需要手动干预。原因是在mvn包
中,在target/
中创建了三个jar:
这使得docker目标失败
当对多个源文件使用COPY时,目标文件必须是一个目录并以/
该消息确实有意义,因为所有jar都与Dockerfile
中的复制源模式匹配。
现在,我只是删除了另外两个JAR(原始和着色),并单独运行docker目标,但只要我在本地手动模式下工作,就可以了。
我是否遗漏了什么,或者这是对Micronaut项目创建的疏忽?
我是否遗漏了什么,或者这是对Micronaut项目创建的疏忽?
后者。
如果您在https://github.com/micronaut-projects/micronaut-profiles/issues我们可以把它弄清楚。
相关文件:
>
https://github.com/micronaut-projects/micronaut-profiles/blob/c391ef02b5ca087bbdec79f80b129240b29cc246/service/skeleton/maven-build/Dockerfile
https://github.com/micronaut-projects/micronaut-profiles/blob/c391ef02b5ca087bbdec79f80b129240b29cc246/service/skeleton/gradle-build/Dockerfile
谢谢你的意见。
不幸的是,我不能帮你配置微星。但是,如果目的是复制主jar文件,并且未知版本后缀是在复制时使用通配符的原因,则可以将finalName
元素添加到pom.xml中,以便删除版本信息从JAR文件的名称:
<build>
<finalName>app_name</finalName>
</build>
为什么Eclipse在构建一个Android项目时,会陷入构建工作区的无限循环...和(重新)构建工作区...和(重新)构建工作区... 这是已知的虫子吗? 走出这个循环的正确方法是什么? 备注: 如果取消选中,它会生成良好的版本,甚至导出一个完美运行的签名发行版APK。 此问题仅在我升级到最新的SDK r19后才开始。在此之前(SDK r11),我从未遇到过此问题。 错误160868正好描述了这
当我尝试使用plugin代替plugin( 第一行构建。我的应用程序模块的梯度是 我整个项目的build.gradle 我运行了并启用了选项 我的版本是2.1 如果我使用android而不是dexGuard,那么我就没有问题。 任何帮助或指点都非常感谢。提前致谢。 PS:我没有问题 独立运行 fwiw。
以下Dockerfile一直在构建错误的体系结构: 注:我不能使用buildx,因为我需要为不同的体系结构安装特定的工具 arm64/Dockerfile docker build: docker inspect: 输出:(应该是arm64而不是amd64)?
我正在使用Eclipse Mars 4.5.0 IDE,并使用CFEclipse插件开发ColdFusion应用程序。此外,我还有SVN Subversion和FileSync插件。 我工作的公司有一个巨大的存储库。我将所有文件同步到我自己的工作区,当我在Eclipse中做任何更改时,它应该更新我自己的工作区和服务器中的开发文件夹。 它工作得很好,但是有时候,比如说每周一次,它开始自动构建工作区。
但是当我进行构建时,它无法编译一些引用webapp/WEB-INF/lib文件夹的jar的类。我不能将这些JAR作为依赖项包含在pom.xml中。 如何告诉maven在构建类和创建WAR时也包含WEB-INF/Lib JAR?
我打算在Windows环境下开发Hadoop,所以我首先开始安装如下。 cygwin、cmake、maven、协议缓冲区2.5、Windows SDK v7。一, 然后我将变量设置如下。 M2_HOME=D:\java\apache-maven-3.2.1 平台=Win32 我添加了