Java命令在Docker容器中不起作用

时间:2018-07-26 14:48:42

标签: java docker

我正在尝试在gitlab中使用docker image运行Java。

这是我的docker文件。

  FROM java:latest
  FROM perl
  COPY . /
  ENTRYPOINT ["/usr/bin/perl", "/myapp_entrypoint.pl"]

我能够成功构建docker映像并运行perl命令,但是java命令不起作用。

我的应用程序是Linux应用程序,并且我正在运行'java -version'。对于版本命令,我没有得到任何输出完全空白的输出。

会有什么问题?我在运行'java -version'作为linux命令时是否需要添加任何与linux相关的内容?

1 个答案:

答案 0 :(得分:1)

您没有指定容器中正在运行的操作系统,但是主要的问题是您正在使用另一个FROM指令破坏Java层。

the documentation中,重点是我:

  

每条FROM指令清除由先前指令创建的任何状态

因此,我建议使用一种解决方案,在拥有基本Java映像之后安装Perl(如果确实需要安装)。

但是,如果您使用基本的OpenJDK images,则会预安装Perl,这样可以大大简化Dockerfile。

FROM openjdk:latest
COPY . /
ENTRYPOINT ["/usr/bin/perl", "/myapp_entrypoint.pl"]