Dockerfile ENTRYPOINT for java -cp argument



我试图创建一个docker文件来运行一个程序,当我在giitbash上运行mysqlconnector jar时:

java -cp mysql-connector-java-8.0.26.jar test.java

我如何将此翻译为Dockerfile?我已经尝试将ENTRYPOINT设置为上面的字符串,但得到一个错误说

“Could Not Find or Load Main Class” Error test.java

Docker并不知道你需要的依赖项。您需要将所有的类/第三方jar文件移动到一个公共文件夹中,以模仿您在本地的操作方式。

FROM openjdk:11
# Set up the Environment Variable for Application
ENV APP_HOME=/app
# Create the directories for Application
RUN mkdir -p ${APP_HOME}
# Setting up the Work directory
WORKDIR ${APP_HOME}
# Exposing the Application Port
EXPOSE 8080
# COPY dependencies
COPY /send-email-api/target/your-mysql-jars ${APP_HOME}
# Copying the artifact from host machine to containers
COPY /send-email-api/target/*classes ${APP_HOME}

ENTRYPOINT java -cp mysql-connector-java-8.0.26.jar test.java

ENTRYPOINT ["java","-cp","mysql-connector-java-8.0.26.jar","test.java"]

您忘记编译了。

java test.java

无论是否使用容器,总是会失败。使用

编译它
javac test.java

,那么您将看到一些test.class文件(这在某种程度上违反了Java的命名约定,但那又怎样)。最后使用

运行此命令
java test

(省略.class, Java将使用类路径找到它)

也许你需要包的路径,例如

java -cp mysql-connector-java-8.0.26.jar my/package/test.java

显然这个类必须有一个主方法

相关内容

  • 没有找到相关文章

最新更新