IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Dockerfiles et bash et zsh


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut Dockerfiles et bash et zsh
    Bonjour tout le monde,

    J'ai quelques soucis avec un dockerfiles, que j'essaye de construire (si je me suis trompé de section, n'hesitez pas à changer).

    Je lance une copilation de mon dockfiles et j'ai les erreurs suivantes ( qui sont dû à priori à la différence entre bash et le shell classique), malheureusement je n'arrive pas à comprendre ce que je dois faire pour résoudre ce soucis...


    voici mon code dockfiles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    FROM ______
    ENV TZ=Europe/Paris
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    RUN rm /bin/sh && ln -s /bin/bash /bin/sh 
    RUN apt-get update -y \
    && apt-get install git lsb-release curl -yq \
    && sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'\
    && apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 \
    && curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | apt-key add - \
    && apt update \
    && apt-get -y install ros-melodic-desktop-full  \
    && echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc \
    && source ~/.bashrc \
    && echo "source /opt/ros/melodic/setup.zsh" >> ~/.zshrc \
    && source ~/.zshrc \
    # && apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential -yq \
    # && apt install python-rosdep -yq \
    # && rosdep init \
    # && rosdep update \
    && apt-get clean -y
    ADD . /app/
    WORKDIR /app
    EXPOSE 2368
    VOLUME /app/logs/
    /opt/ros/melodic/setup.zsh: line 7: cd: -q: invalid option
    cd: usage: cd [-L|[-P [-e]] [-@]] [dir]
    /opt/ros/melodic/setup.zsh: line 8: emulate: command not found
    The command '/bin/sh -c apt-get update -y && apt-get install git lsb-release curl -yq && sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'&& apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 && curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | apt-key add - && apt update && apt-get -y install ros-melodic-desktop-full && echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc && source ~/.bashrc && echo "source /opt/ros/melodic/setup.zsh" >> ~/.zshrc && source ~/.zshrc && apt-get clean -y' returned a non-zero code: 127
    zsh: aucun fichier ou dossier de ce type: /opt/ros/melodic/setup.zsh:
    zsh: bad pattern: [-P
    zsh: bad pattern: [-L
    [1] 21880 exit 1 cd: usage: cd [-L

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    Tu as tout. "cd" n'a pas d'option "-q" dans bash mais peut en avoir une en zsh. Donc 2 voies :
    • Soit tu enlèves l'option -q de tes scripts.
    • Soit tu expliques à ton système quel est le bon interpréteur de commande.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut
    Je te remercie pour ces explications
    J'ai retiré le q de la ligne 7.
    Mais l'erreur est toujours présente ...


    Comment je peux indiquer à mon système que elle est le bon interpreteur. J'ai vu la commande shell dans les dockerfile mais pas directement à linux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    FROM _______
    ENV TZ=Europe/Paris
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    RUN rm /bin/sh && ln -s /bin/bash /bin/sh 
    RUN apt-get update -y \
    && apt-get install git lsb-release curl -y \
    && sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'\
    && apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 \
    && curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | apt-key add - \
    && apt update \
    && apt-get -y install ros-melodic-desktop-full  \
    && echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc \
    && source ~/.bashrc \
    && echo "source /opt/ros/melodic/setup.zsh" >> ~/.zshrc \
    && source ~/.zshrc \
    && apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential -y \
    && apt install python-rosdep -y \
    #&& rosdep init \
    #&& rosdep update \
    #mkdir /home/cellule \      
    #cd /home/cellule \        
    #&& git clone https://github.com/aip-primeca-occitanie/aip_cellule_flexible.git \
    && apt-get clean -y 
    ADD . /app/
    WORKDIR /home/cellule
    EXPOSE 2368
    VOLUME /app/logs
    /opt/ros/melodic/setup.zsh: line 7: cd: -q: invalid option
    cd: usage: cd [-L|[-P [-e]] [-@]] [dir]
    /opt/ros/melodic/setup.zsh: line 8: emulate: command not found
    The command '/bin/sh -c apt-get update -y && apt-get install git lsb-release curl -y && sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'&& apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 && curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | apt-key add - && apt update && apt-get -y install ros-melodic-desktop-full && echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc && source ~/.bashrc && echo "source /opt/ros/melodic/setup.zsh" >> ~/.zshrc && source ~/.zshrc && apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential -y && apt install python-rosdep -y && apt-get clean -y' returned a non-zero code: 127

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour,

    on peut configurer python pour être l'interpréteur de connexion d'un utilisateur.
    alors, ton script, sh, bash ou zsh ne fonctionnera plus du tout.

    mets un shebang en haut de ton script.
    pour des environnements non standardisés, utilise un syntaxe strictement POSIX, et indique-le en ajoutant #!/bin/sh au tout début du script.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut
    Bonjour
    J'ai cru comprendre que le shell posix était le shell de base pour unix (si je ne me trompe pas).
    Il ne trouve pas l'instruction shebang, sinon moi je désire utiliser docker bluild -t essai 1.0 . Par exemple...
    Si je me un #!/bin/sh il va fonctionner pour le bash (sans mettre le lien symbolique du coup) ?
    Je pose sans doute des questions triviales, mais je galère un peu ...

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    le shell par défaut, ça dépend de la configuration de l'utilisateur (lors de la création de son profile, ou a posteriori (après chsh)).

    si tu n'indiques pas formellement au début du script quel shell utiliser,
    ça peux être n'importe quoi,
    ou pire.


    quand on n'est pas sûr, on met #!/bin/sh, et on écrit le script en respectant strictement la norme POSIX.
    ainsi, quelque soit le lien /bin/sh, il pointera nécessairement vers un shell conforme à cette norme.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête POST dans un script bash
    Par desperado dans le forum Linux
    Réponses: 4
    Dernier message: 11/12/2007, 22h38
  2. Extraire des lignes d'un fichier en commande bash
    Par newnew dans le forum Linux
    Réponses: 3
    Dernier message: 27/07/2004, 16h22
  3. Bash et fichiers
    Par localhost dans le forum Linux
    Réponses: 12
    Dernier message: 30/06/2004, 07h11
  4. Bash vs MySQL
    Par localhost dans le forum Linux
    Réponses: 3
    Dernier message: 28/06/2004, 10h48
  5. Zsh configuration du prompt
    Par Noki dans le forum Linux
    Réponses: 11
    Dernier message: 29/03/2004, 15h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo