Je ne sais pas pourquoi je m'attendais à ce que cela fonctionne:
# Dockerfile
FROM node:6
FROM Java:8
mais cela ne fonctionne pas vraiment - on dirait que la première commande est ignorée et la deuxième commande fonctionne.
Existe-t-il un moyen simple d’installer Node.js et Java dans un conteneur Docker?
En fin de compte, le problème que je tente de résoudre est que je reçois une erreur ENOENT lors de l'exécution de Selenium Webdriver
[20:38:50] W/start - Selenium Standalone server encountered an error: Error: spawn Java ENOENT
Et pour le moment, je suppose que c'est parce que Java n'est pas installé dans le conteneur.
Vous pouvez utiliser une seule variable FROM
par image générée . Essayez d'utiliser node
comme image de base et y installer Java.
Le meilleur moyen pour vous est de prendre Java (qui est officiellement déconseillé et qui vous suggère d’utiliser openjdk
image) et d’y installer le noeud.
Alors, commencez par
FROM openjdk:latest
Cela utilisera la dernière image openjdk, qui est 8u151
pour le moment. Puis installez node
et les autres dépendances dont vous pourriez avoir besoin:
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
Vous voudrez peut-être installer des choses telles que grunt par la suite, cela pourrait donc s'avérer utile.
RUN npm install -g grunt grunt-cli
Au total, vous obtiendrez le fichier Dockerfile suivant:
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
Vous pouvez cloner le fichier Docker de mon compte gitlab ici
La FROM
de votre fichier docker indique simplement au menu fixe à partir de quelle image il doit démarrer la configuration. Vous ne pouvez pas simplement concaténer plusieurs images ensemble. Il existe déjà plusieurs images de conteneur disponibles offrant Java 8 et le noeud JS préinstallés. Je ne souhaite recommander aucune image en particulier, mais je vous dirigerai vers docker-hub pour que vous puissiez effectuer votre propre recherche et utiliser le conteneur qui répond le mieux à vos besoins.