我正在尝试在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相关的内容?
答案 0 :(得分:1)
您没有指定容器中正在运行的操作系统,但是主要的问题是您正在使用另一个FROM
指令破坏Java层。
在the documentation中,重点是我:
每条
FROM
指令清除由先前指令创建的任何状态。
因此,我建议使用一种解决方案,在拥有基本Java映像之后安装Perl(如果确实需要安装)。
但是,如果您使用基本的OpenJDK images,则会预安装Perl,这样可以大大简化Dockerfile。
FROM openjdk:latest
COPY . /
ENTRYPOINT ["/usr/bin/perl", "/myapp_entrypoint.pl"]