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

使用Java和Node.js创建Docker容器,java,node.js,selenium,docker,dockerfile,Java,Node.js,Selenium,Docker,Dockerfile,我不知道为什么我希望这能奏效: # Dockerfile FROM node:6 FROM java:8 但它并没有真正起作用——看起来第一个命令被忽略了,第二个命令起作用了 在Docker容器中安装Node.js和Java是否有一种简单的方法 最终,我试图解决的问题是,在运行SeleniumWebDriver时,我遇到了一个eNont错误- [20:38:50] W/start - Selenium Standalone server encountered an error:

我不知道为什么我希望这能奏效:

 # Dockerfile    
 FROM node:6
 FROM java:8
但它并没有真正起作用——看起来第一个命令被忽略了,第二个命令起作用了

在Docker容器中安装Node.js和Java是否有一种简单的方法

最终,我试图解决的问题是,在运行SeleniumWebDriver时,我遇到了一个eNont错误-

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

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

docker文件中的
只是告诉docker应该从哪个映像启动配置。您不能简单地将多个图像连接在一起。已经有多个容器映像可用,它们提供预安装的Java8和NodeJS。我不想特别推荐任何图像,但会指导您自己搜索并使用最适合您需要的容器。

您可以对生成的图像使用单个
FROM
。 尝试使用
节点
作为基本映像,并在其中安装java

Dockerfile 您可以选择所需的版本:

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

对您来说,最好的方法是使用java(官方不推荐使用java,建议您使用
openjdk
image)并在其中安装node

那么,从

FROM openjdk:latest
这将使用最新的openjdk映像,此时为
8u151
。然后安装
节点
和您可能需要的其他依赖项:

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

您可以使用node的版本14从my gitlab repo克隆Dockerfile,它非常适合我:

FROM openjdk:latest

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

您还可以使用
节点
映像,然后安装
默认jre

#Dockerfile
来自节点:最新
运行apt get-y安装默认jre
您可以选择所需的版本:

apt install default-jre
apt install openjdk-11-jre-headless
apt install openjdk-8-jre-headless
apt安装默认jre
apt安装openjdk-11-jre-headless
apt安装openjdk-8-jre-headless
这对我很有用:

FROM openjdk:16-slim-buster

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

是的,我想,但这意味着我要多花30多秒来安装java-如果它是一个映像,速度会快得多…在某些情况下,安装java只需一分钟,没有乐趣如何将java作为基本映像安装在node中我更新了答案以包含最新版本的node,问题是,这将在Debian上安装一个旧得多的nodejs版本-我如何才能同时获得npm和nodejs的新版本?对于nodejs,我使用“runcurl-sL | sudo-ebash-”这个(另一个编辑)怎么样?它按照官方github自述文件的建议安装
npm
。应该是最新版本。
openjdk:latest
映像的最新版本使用Oracle Linux(基于红帽的发行版)作为基础,而不是Debian。这意味着
apt
不再可用,需要改用
yum
。遗憾的是,最新版本
openjdk:16-jdk-oraclelinux8
似乎不再具有
yum