2016-01-26 2 views
1

Environnement:
J'utilise IntelliJ 14 pour déployer des conteneurs docker dans CoreOS (VM qui a créé à l'aide Vagrant et VirtualBox) sur ma machine locale.Impossible d'exécuter un script en utilisant le plugin IntelliJ pour docker deplyment

Configuration:
Mon Dockerfile doit exécuter un script d'installation:

ADD setup.sh /tmp/setup.sh 
RUN chmod +x /tmp/setup.sh 
RUN /tmp/setup.sh 

Docker déployer à l'aide IntelliJ:
Lors de l'exécution deploy docker (en utilisant IntelliJ), il construit une image, la création d'un conteneur, mais n'a pas réussi à exécuter mon script avec l'erreur suivante:

Step 5 : RUN /tmp/setup.sh 

---> Running in cb36ed95ad50 

[91m/bin/sh: 1: [0m 
[91m/tmp/setup.sh: not found[0m 
[91m 
[0m 
Error: The command '/bin/sh -c /tmp/setup.sh' returned a non-zero code: 127 
Failed to deploy 'Deployment: Dockerfile: Dockerfile': The command '/bin/sh -c /tmp/setup.sh' returned a non-zero code: 127 

Docker déployer en utilisant Circle CI:
J'utilise également circleci afin de déployer en continu des conteneurs docker sur AWS EC2 (mes environnements de stockage et de production).
Lorsque vous utilisez circleci avec le même fichier docker et le script setup.sh, il fonctionne correctement.

Une idée quelle est la différence?

Merci,
Effi

+1

Quel système d'exploitation utilisez-vous pour le développement? – Lital

+1

Windows sur ma machine locale qui fonctionne intellij –

Répondre

2

Si 91m ne font pas partie du chemin de /tmp/setup.sh, alors il peut être une fin de problème d'encodage de ligne.

en ASCII, fin de ligne (retour chariot CR) peuvent être imprimées comme m ou ^M et crochets [ codage est 91.

Dans Windows, la fin de la ligne est représentée par les caractères CR+LF et dans Unix uniquement LF.

Vous pouvez essayer de convertir le format de fichier setup.sh de Windows à Unix. De nombreux outils peuvent le faire pour vous. Sur Unix, j'utilise habituellement dos2unix. Sous Windows, j'utilise habituellement notepad++.

Voici comment l'exécuter avec dos2unix:

  • Sur votre machine CoreOS installer package nommé dos2unix et exécutez la commande suivante:

    dos2unix setup.sh

Voici comment l'utiliser avec notepad++:

  • Sur votre machine Windows installer notepad++
    • Open setup.sh with notepad++
    • Go to Edit > EOL Conversion > Unix/OSX Format
    • Save the file

Exécutez votre déploiement docker avec le nouveau setup.sh à nouveau et je l'espère résoudre votre problème.

+0

Merci !!! '91m' ne fait pas partie de mon chemin. –