2017-12-12 5 views
0

Ich möchte shell.sh in Ubuntu Docker mit Apache und einige Dienste ausführen. Das ist meine Schale:Shell funktioniert nicht in Docker

#!/bin/bash 
/var/www/cron350.sh> /dev/null 2>&1 & 

So in Docker-compose.yml füge ich diesen Befehl ein:

command: bash -c "/var/www/shell.sh && service php7.1-fpm start && service cron start && /usr/sbin/apache2ctl -D FOREGROUND" 

I "Docker-komponieren up -d" laufen, aber es ist nicht in der funktioniert Das erste Mal - alles ist in Ordnung, aber die Shell läuft nicht. Wenn ich versuche, "docker-compose-up -d" erneut auszuführen, wird die Shell ausgeführt. Kannst du mir sagen, warum das passiert? Wie kann ich es reparieren?

Es tut mir so leid, weil mein Englisch nicht gut ist.

+0

Können Sie es starten ohne '-d' und geben Sie Fehler aus dem Protokoll. – yamenk

+0

Danke für Ihre Unterstützung. Es funktioniert nicht zum ersten Mal, weil cron350.sh eine Verbindung zum mysql-Container herstellt, der mysql-Container wurde jedoch zu diesem Zeitpunkt noch nicht initialisiert. Ich habe die Shell bearbeitet und es hat funktioniert. – NickNguyen

Antwort

0

Mögliche Duplikat: Using Docker-Compose, how to execute multiple commands

Docker Container zu erstellen, docker-compose up --build

dass zu starten, docker start -t [CONTAINER]

Um eine interaktive Bash-Shell auf dem Behälter auszuführen, docker exec -it [CONTAINER_ID] bash