【发布时间】:2020-05-27 12:39:45
【问题描述】:
我是 java 和 maven 的新手。我已经构建了一个执行 flink 作业的应用程序。我已经创建了一个基本的 docker 映像,但我不确定如何像在终端中运行应用程序一样执行/运行。
我目前在终端中运行应用程序如下:
mvn package exec:java `-D exec.args="--runner=FlinkRunner --flinkMaster=localhost:8081 --filesToStage=.\target\maven_benchmark-1.0-SNAPSHOT-jar-with-dependencies.jar `" -P flink-runner`
这是我的 docker 文件
FROM maven:latest AS build
COPY src /usr/src/app/src
COPY pom.xml /usr/src/app
RUN mvn -f /usr/src/app/pom.xml clean package
FROM openjdk:14
COPY --from=build /usr/src/app/target/maven_benchmark-1.0-SNAPSHOT-jar-with-dependencies.jar /usr/app/maven_benchmark-1.0-SNAPSHOT-jar-with-dependencies.jar
WORKDIR /usr/app
EXPOSE 8080
ENTRYPOINT ["java","-jar","maven_benchmark-1.0-SNAPSHOT-jar-with-dependencies.jar"]
有什么建议吗?
提前致谢!
【问题讨论】:
-
只需将您的 Dockerfile ENTRYPOINT 更改为
ENTRYPOINT ["/bin/bash", "-c", "mvn ... # your command in terminal"]。 -
@abuccts 我不认为它会起作用,因为第二个图像没有安装 maven - 它是一个多阶段构建。
标签: java docker maven apache-flink