繁体   English   中英

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

[英]How to install java in container while writing it in Dockerfile?

我对软件开发很幼稚。 我想使用 cron 作业从Dkron Scheduler 运行 jar 文件。 我在 docker 中运行 dkron(使用 docker-compose up)。 我正在传递 "command": "java --version" 以查看是否可以从 Dkron 运行 java。 由于 docker 没有安装 java,我将 dockerfile.hub 文件更改为:

FROM alpine
LABEL maintainer="Victor Castell <victor@victorcastell.com>"

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"]

当我再次执行 docker-compose up 时,它不会给出任何错误,仍然通过 UI 通过 json 传递“command”:“java --version”,dkron 显示错误 - exec :“java”:在 $PATH 中找不到可执行文件.

我能做些什么来解决它?

提前致谢。

我能够使用 dkron 作为基本映像(公开可用)在 docker 容器中创建 JVM,并在其上构建另一个映像。

这是我为运行 java 应用程序而创建的 dockerfile

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

然后我建立形象。 让 id 为 xxx 然后我运行镜像并构建 dkron 服务器作为 docker run -p 8080:8080 xxx agent --server --bootstrap-expect=1 --node-name=node1

试试这个文件

FROM alpine
LABEL maintainer="Victor Castell <victor@victorcastell.com>"

RUN set -x \
        && buildDeps='bash ca-certificates openssl tzdata' \
        && apk add --update $buildDeps \
        && apk add openjdk8 \
        && rm -rf /var/cache/apk/* \
        && mkdir -p /opt/local/dkron

ENV JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
ENV PATH="$JAVA_HOME/bin:${PATH}"

EXPOSE 8080 8946

ENV SHELL /bin/bash
WORKDIR /opt/local/dkron

COPY dkron .
COPY dkron-* ./
ENTRYPOINT ["/opt/local/dkron/dkron"]

CMD ["--help"]

alpine 包没有openjava8包。

编辑:更新 ENV 变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM