Je veux créer un docker avec java et le tester, mais je reçois une erreur
Ce fichier est le docker
FROM openjdk:8-jdk-slim
…
COPY Simple.java /project/
WORKDIR /project
CMD ["java" ,”--version”]
J'essaie d'exécuter le fichier Simple.java
class Simple{
public static void main(String args[]){
System.out.println("Hello Java");
}
}
quand je lance la commande suivante:
docker run mydocker javac Simple.java
Je reçois l'erreur:
Simple.java:1: error: error while writing Simple: Simple.class (Permission denied)
class Simple{
^
1 error
Comment pourrais-je tester un programme java et voir que cela fonctionne?
Vous surchargez la commande (CMD) dans dockerfile lorsque vous exécutez
docker run mydocker javac Simple.java
Voici ce que docker doc dit:
Cette commande est facultative parce que la personne qui a créé l'image peut avoir déjà fourni un défaut commande à l'aide de l'instruction CMD Dockerfile. Comme l'opérateur (la personne qui exécute un conteneur de l'image), vous pouvez remplacer cette instruction CMD simplement en spécifiant une nouvelle commande
J'ai changé votre Dockerfile un peu, voici:
FROM openjdk:8-jdk-slim
COPY Simple.java /project/
WORKDIR /project
RUN ["javac" ,"Simple.java"]
CMD ["java" ,"Simple"]
Maintenant, vous devriez être en mesure d'exécuter
docker run mydocker
Production;
➜ DockerTest docker run mydocker
Hello Java