使用 Java 和 Node 创建 Docker 容器.jsDockerfile

2022-09-01 20:15:13

我不确定为什么我期望这有效:

 # Dockerfile    
 FROM node:6
 FROM java:8

但它并不真正起作用 - 看起来第一个命令被忽略,第二个命令起作用。

有没有一种简单的方法可以在Docker容器中同时安装Node.js和Java?

最终,我试图解决的问题是,我在运行Selenium Webdriver时遇到了ENOENT错误 -

[20:38:50] W/start - Selenium Standalone server encountered an error: Error: spawn java ENOENT

现在我认为这是因为Java没有安装在容器中。


答案 1

最好的方法是使用java(它被正式弃用,它建议你使用镜像)并在其中安装node。openjdk

因此,请从

FROM openjdk:latest

这将使用最新的 openjdk 映像,该映像此时已准备就绪。然后安装和您可能需要的其他依赖项:8u151node

RUN apt-get install -y curl \
  && curl -sL https://deb.nodesource.com/setup_9.x | bash - \
  && apt-get install -y nodejs \
  && curl -L https://www.npmjs.com/install.sh | sh

您可能希望在之后安装诸如grunt之类的东西,因此这也可能派上用场。

RUN npm install -g grunt grunt-cli

总的来说,你会得到以下Dockerfile:

FROM openjdk:latest

RUN apt-get install -y curl \
  && curl -sL https://deb.nodesource.com/setup_9.x | bash - \
  && apt-get install -y nodejs \
  && curl -L https://www.npmjs.com/install.sh | sh \
RUN npm install -g grunt grunt-cli

你可以从这里的gitlab存储库克隆Dockerfile


答案 2

您可以为每个生成的图像使用单个图像。尝试用作基础映像,并在其上安装 java。FROMnode

Dockerfile

FROM node:latest
RUN apt-get -y install default-jre

您可以选择所需的版本:

apt install default-jre
apt install openjdk-11-jre-headless
apt install openjdk-8-jre-headless

推荐