首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从docker容器运行Java 8应用程序

无法从docker容器运行Java 8应用程序
EN

Stack Overflow用户
提问于 2020-01-24 08:13:27
回答 1查看 276关注 0票数 0

我可以在bash shell中使用以下命令正确启动此Java 8应用程序:

代码语言:javascript
运行
复制
java -cp "simple-queue-0.1-SNAPSHOT.jar:jms-1.1.jar:commons-logging-1.2.jar:activemq-all-5.13.3.jar" 
    -Dserver1="my1.domain.com" 
    -Dserver2="my2.domain.com" 
    -Dusername="user" 
    -Dpassword="passwd" 
     com.fusesource.activemq.exercises.simple.queue.SimpleProducer

我想将这个应用程序容器化,所以下面是我的Dockerfile:

代码语言:javascript
运行
复制
FROM store/oracle/serverjre:8
MAINTAINER <me@myco.com>

EXPOSE 4567

VOLUME /data

COPY build/libs/*.jar /usr/local/bin/
COPY /app/simple-queue-0.1-SNAPSHOT.jar /usr/local/bin/

CMD ["java", "-cp", "/usr/local/bin/simple-queue-0.1-SNAPSHOT.jar:/usr/local/bin/jms-1.1.jar:/usr/local/bin/commons-logging-1.2.jar:/usr/local/bin/activemq-all-5.13.3.jar", "-Dserver1=$SERVER1", -Dserver2="$SERVER2", -Dusername="$USER", -Dpassword="$PASSWORD"]

我这样启动我的容器:

代码语言:javascript
运行
复制
docker run -it --rm -e SERVER1=my1.domain.com -e SERVER2=my2.domain.com -e USER=user -e PASSWORD=passwd ecosystem/simple-queue-client:1.1 com.fusesource.activemq.exercises.simple.queue.SimpleProducer

我得到了这个错误信息:

代码语言:javascript
运行
复制
docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"com.fusesource.activemq.exercises.simple.queue.SimpleProducer\": executable file not found in $PATH": unknown.

当我进入该容器时,可以看到我的jar文件实际上位于路径中的/usr/local/bin目录中。容器中的CLASSPATH为空...

我需要做些什么来解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2020-01-25 03:11:39

我使用了上面midelb提供的链接中的信息,最终得到了两个容器:一个用于SimpleProducer,另一个用于SimpleReceiver。

以下是其中之一的Docker文件:

代码语言:javascript
运行
复制
FROM store/oracle/serverjre:8
MAINTAINER <james.depaul@maxar.com>

VOLUME /data

COPY build/libs/*.jar /usr/local/bin/
COPY /app/simple-queue-0.1-SNAPSHOT.jar /usr/local/bin/

ENTRYPOINT java -classpath /usr/local/bin/simple-queue-0.1-SNAPSHOT.jar:/usr/local/bin/jms-1.1.jar:/usr/local/bin/commons-logging-1.2.jar:/usr/local/bin/activemq-all-5.13.3.jar -Dserver1=$SERVER1 -Dserver2=$SERVER2 -Dusername=$USER -Dpassword=$PASSWORD com.fusesource.activemq.exercises.simple.queue.SimpleConsumer

构建

代码语言:javascript
运行
复制
docker build -t mysystem/simple-client-consumer:1.0

我现在这样叫它:

代码语言:javascript
运行
复制
docker run -d --rm -e SERVER1=server-b0.domain.com -e SERVER2=server-b1.domain.com -e USER=user -e PASSWORD=passwd mysystem/simple-client-consumer:1.0 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59888832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档