これが機能することを期待した理由がわかりません:
# Dockerfile
FROM node:6
FROM Java:8
しかし、実際には機能しません。最初のコマンドは無視され、2番目のコマンドは機能するようです。
Node.jsとJavaの両方をDockerコンテナーにインストールする簡単な方法はありますか?
最終的に私が解決しようとしている問題は、Selenium Webdriverを実行するとENOENTエラーが発生することです-
[20:38:50] W/start - Selenium Standalone server encountered an error: Error: spawn Java ENOENT
現時点では、Javaがコンテナにインストールされていないためと考えられます。
生成された画像ごとに単一のFROM
を使用できます。 node
をベースイメージとして使用し、Javaをインストールしてください。
あなたにとって最良の方法は、Java(これは公式には非推奨であり、openjdk
イメージを使用することをお勧めします)を取得して、そこにノードをインストールすることです。
だから、で始まる
FROM openjdk:latest
これは、現時点で8u151
である最新のopenjdkイメージを使用します。次に、node
および必要なその他の依存関係をインストールします。
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のクローンを作成できます here
Dockerfile内のFROM
は、構成を開始するイメージをdockerに通知するだけです。複数の画像を単純に連結することはできません。プレインストールされたJava 8およびノードJSを提供する複数のコンテナーイメージが既に利用可能です。イメージを特に推奨したくありませんが、 docker-hub 自分で検索して、ニーズに最適なコンテナを使用するためです。