java dockerfile,在Dockerfile中编写Java时如何在容器中安装Java?

I am naive in software development. I want to run a jar file from Dkron Scheduler using cron job. I am running dkron in docker(using docker-compose up). I am passing "command": "java --version" to see if I can run java from Dkron. As docker do not have java installed I changed the dockerfile.hub file to this:

FROM alpine

LABEL maintainer="Victor Castell "

RUN set -x \

&& buildDeps='bash ca-certificates openssl tzdata' \

&& apk add --update $buildDeps \

&& apk add openjava8 #add this line to install java

&& rm -rf /var/cache/apk/* \

&& mkdir -p /opt/local/dkron

ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk #add this line to install java

ENV PATH $PATH:$JAVA_HOME/bin #add this line to install java

EXPOSE 8080 8946

ENV SHELL /bin/bash

WORKDIR /opt/local/dkron

COPY dkron .

COPY dkron-* ./

ENTRYPOINT ["/opt/local/dkron/dkron"]

CMD ["--help"]

When I again do docker-compose up it do not give any error, still on passing "command": "java --version" by json through UI, dkron shows error - exec : "java" : executable file not found in $PATH.

What can I do to resolve it?

Thanks in advance.

解决方案

I was able to create JVM in docker container using dkron as the base image, (publically available) and build another image on top of it.

Here is dockerfile I created for running java application

FROM dkron/dkron

WORKDIR /root/hello-world

COPY hello.java /root/hello-world

RUN apk add openjdk8

ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk

ENV PATH $JAVA_HOME/bin:$PATH

RUN javac hello.java

Then I build image. Let id be xxx

Then I ran the image and build dkron server as

docker run -p 8080:8080 xxx agent --server --bootstrap-expect=1 --node-name=node1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值