使用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
。