简体   繁体   English

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

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

I am naive in software development.我对软件开发很幼稚。 I want to run a jar file from Dkron Scheduler using cron job.我想使用 cron 作业从Dkron Scheduler 运行 jar 文件。 I am running dkron in docker(using docker-compose up).我在 docker 中运行 dkron(使用 docker-compose up)。 I am passing "command": "java --version" to see if I can run java from Dkron.我正在传递 "command": "java --version" 以查看是否可以从 Dkron 运行 java。 As docker do not have java installed I changed the dockerfile.hub file to this:由于 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"]

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.当我再次执行 docker-compose up 时,它不会给出任何错误,仍然通过 UI 通过 json 传递“command”:“java --version”,dkron 显示错误 - exec :“java”:在 $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.我能够使用 dkron 作为基本映像(公开可用)在 docker 容器中创建 JVM,并在其上构建另一个映像。

Here is dockerfile I created for running java application这是我为运行 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

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让 id 为 xxx 然后我运行镜像并构建 dkron 服务器作为 docker run -p 8080:8080 xxx agent --server --bootstrap-expect=1 --node-name=node1

Try this file试试这个文件

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 package doesn't have openjava8 packages. alpine 包没有openjava8包。

Edit: Update ENV variables编辑:更新 ENV 变量

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

相关问题 如何使用Dockerfile安装特定版本的Java 8 - How to install a specific version of Java 8 using Dockerfile 在 Dockerfile 中安装 mysql 和 java jdk-11 并在容器中运行我的 spring boot jar 文件 - install mysql and java jdk-11 in Dockerfile and run my spring boot jar file in container 如何在 python:3.8-slim-buster 基础镜像中使用 dockerfile 安装 java 8 - How to install java 8 using dockerfile in python:3.8-slim-buster base image 如何在 Dockerfile 上添加 Java 11? - How to add Java 11 on Dockerfile? java.lang.NoClassDefFoundError:尝试安装Visual Paradigm时出现java.awt.Container - java.lang.NoClassDefFoundError: java.awt.Container while trying to install Visual Paradigm 如何使用 docker-compose.Z6EEDC03A68A69933C7463E674F2 在 airflow 容器中安装 java - How to install java in an airflow container using docker-compose.yaml 如何在使用JAVA编写FTP客户端时使用PORT命令 - How to use PORT command while writing an FTP client with JAVA Java - 如何在写入文件时检测文件删除? - Java - How to detect file deletion while writing to a file? 如何在java中写入CSV文件时放置逗号? - How to place comma while writing into CSV file in java? 如何使用java写入文件时添加换行符? - How to add newlines while writing to file using java?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM