gpt4 book ai didi

java - 如何在 docker 容器中运行瘦 jar

转载 作者:行者123 更新时间:2023-11-30 06:34:01 26 4
gpt4 key购买 nike

这是项目的文件夹结构

pom.xml
Dockerfile
src/
main/java/com/example/*.java
test/java/com/example/*.java
etc/
config.properties
args.params
target/
app.jar
app.tar.gz
libs/
//contains dependent jars
classes/
//contains compiled classes

应用程序通常使用以下命令执行:

java -Djava.net.preferIPv4Stack=true -Dconfig.dir=./etc -Dlogback.configurationFile=./etc/log.xml -jar app.jar  

我编写了这个 dockerfile 以在 docker 中运行 jar:

FROM java:8
EXPOSE 6078
COPY target/ /
ADD target/app.tar.gz /
ENTRYPOINT ["java", "-cp", "target/app.jar:target/app/libs/*:", "com.example.MainClass"]
CMD ["`cat etc/args.params`","-Dlogback.configurationFile=./etc/log/xml"]

但是当我运行 docker 时:

docker build -t app .
docker run app

我收到以下错误:

Error: Could not find or load main class com.example.MainClass

我错过了什么?

最佳答案

评估不适用于 Docker 命令。这边走

FROM ubuntu:16.04
CMD ["echo","My name is Tarun", "`date`"]

这将输出

My name is Tarun `date`

但是如果我改变我的Dockerfile

FROM ubuntu:16.04

CMD /bin/bash -c "echo My name is Tarun `date`"

然后你将得到正确的输出。因此,您需要使用 /bin/bash -c "<full command>" 执行命令。请注意,最后一个参数全部作为单个参数输入。如果是数组形式,则为

CMD ["/bin/bash","-c", "echo My name is Tarun `date`"]

关于java - 如何在 docker 容器中运行瘦 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45513711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com