Conteneur de la commande "/start.sh " introuvable ou n'existe pas, point d'entrée du conteneur est script shell
Le contenu d'un projet:
rob@work:~/git/proj $ ls
lib node_modules props.json start.sh
app.js Dockerfile package.json README.md
start.sh
..
rob@work:~/git/proj $ cat start.sh
#/bin/bash
# do things
/some/other/stuff
echo "Starting app .."
node app.js
Dockerfile
..
FROM somewhere.com/dependencyProj
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app
COPY props.json /etc/someService.d/props.json
EXPOSE 4101
ENTRYPOINT ["/start.sh"]
Construire le panneau de l'image:
rob@work:~/git/proj $ docker build -t dx/proj:0.0.1 .
Sending build context to Docker daemon 59.99 MB
Step 1 : FROM somewhere.com/dependencyProj
latest: Pulling from dependencyProj
420890c9e918: Already exists
8ff1af46fe3d: Already exists
6db3a1c6f4ca: Already exists
d82a90c4ea1b: Already exists
f32685681727: Already exists
797dfb291196: Already exists
3a713b0b523e: Already exists
a9c617bff63b: Already exists
9ab84732ac6e: Already exists
2a85e0afdd4d: Already exists
a56b24146ce4: Already exists
0a91b00da1f7: Already exists
836b0e7c1105: Already exists
Digest: sha256:36b7a32bd12b85cbb2fb3203d43807c9b8735d6ceb50d813b76bfe2e5c3ebeb4
Status: Downloaded newer image for somewhere.com/dependencyProj:latest
---> 7c52bbbc3feb
Step 2 : RUN mkdir -p /usr/src/app
---> Running in aab7cf1f7974
---> 250317f63adf
Removing intermediate container aab7cf1f7974
Step 3 : WORKDIR /usr/src/app
---> Running in f60088532610
---> 60f3d9fe88c4
Removing intermediate container f60088532610
Step 4 : COPY . /usr/src/app
---> 004e0a440fb5
Removing intermediate container f247d134d88b
Step 5 : COPY props.json /etc/someService.d/props.json
---> 03b48249c94c
Removing intermediate container a3636849765d
Step 6 : EXPOSE 4101
---> Running in 0056e5c20264
---> 867765176927
Removing intermediate container 0056e5c20264
Step 7 : ENTRYPOINT /start.sh
---> Running in 80ae316b0629
---> d1e65def77ce
Removing intermediate container 80ae316b0629
Successfully built d1e65def77ce
Exécuter le panneau de l'image:
rob@work:~/git/proj $ docker run -d dx/proj:0.0.1
0fd1f8087cc5be3e085454cf99b7a3795b9ce15909b0f416ae39380f93feaa44
docker: Error response from daemon: Container command '/start.sh' not found or does not exist..
C'est
Je reçois
Avez-vous ajouter exécutable autorisation pour
erreur même si j'ai mis
Votre arborescence n'est pas, c'est
./start.sh
.Je reçois
docker: Error response from daemon: rpc error: code = 2 desc = "oci runtime error: exec format error".
si vous utilisez ./start.sh
Avez-vous ajouter exécutable autorisation pour
start.sh
? Essayez chmod +x start.sh
.erreur même si j'ai mis
RUN chmod +x start.sh
avant ENTRYPOINT ["./start.sh"]
Votre arborescence n'est pas, c'est
#!/bin/bash
, pas #/bin/bash
.OriginalL'auteur bobbyrne01 | 2016-05-24
Vous devez vous connecter pour publier un commentaire.
Vous avez quelques questions:
Vous devez utiliser
./start.sh
pour exécuter lestart.sh
fichiers dans le répertoire courant./start.sh
exécuterstart.sh
de la racine/
, qui n'existe pas.Votre ligne shebang en
start.sh
script est mauvais, il doit être#!/bin/bash
.Vous devez également définir exécutable autorisation pour
start.sh
, en exécutantchmod +x start.sh
.passé quelques heures coincé sur cela et c'est ce qui m'est arrivé, lors de mes intellij commis le fichier converti le fichier terminaisons!
OriginalL'auteur cuonglm
Sur windows, lors de la construction du support de l'image, je l'ai aussi utilisé pour obtenir le même message d'erreur après la construction de l'image, script shell est manquant.. le chemin d'accès et le shebang était également correcte.
Plus tard, j'ai lu quelque part qu'il peut être à cause du problème de codage. Je viens d'ouvrir le fichier dans le sublime de l'éditeur et puis..VIEW->les Fins de Ligne-> UNIX et il suffit d'enregistrer le fichier, et rénovée de l'image. Tout a bien fonctionné.
J'ai été faire cette erreur, quand j'ai été la construction d'une image de windows.
Autre Option:
Autrefois, nous avons oublié de modifier manuellement le format de la ligne. Donc,ce que nous pouvons faire est d'ajouter cette Exécuter déclaration avant le point d'entrée dans dockerfile. Il va encoder le fichier en LF format.
Omg... perdu tant de fois à cause de ça... j'ai cloné un dépôt git et j'ai oublié que Git pour Windows convertit LF à CRLF (et l'inverse lorsque vous appuyez sur).
C'était la bonne réponse pour moi (l'exécution de Docker pour Windows) où j'avais utilisé VS Code pour modifier un '.sh " fichier oublier vais l'enregistrer avec le CR-LF fins de ligne. Pour quelqu'un qui n'a pas le Sublime Texte, vous pouvez utiliser Notepad++ pour la changer pour Linux ligne terminaisons.
Merci!!!! Ce fut aussi mon problème. VSCode le rend vraiment facile de changer les fins de ligne, heureusement, mais il m'avait confondu pendant un certain temps. Étrange message d'erreur. Il existe, je suppose que j'aimerais obtenir quelques
filename.sh: corrupted
message d'erreur ou quelque chose. Au lieu de message d'erreur a étédoes not exist
qui m'a jetéOriginalL'auteur Utkarsh Yeolekar