docker en cours d'exécution avec le numéro d'autorisation java

Jenny M:

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?

Bilal Ekrem Harmans à:

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

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=317473&siteId=1
conseillé
Classement