2016-03-18 6 views
0

Ich habe einen Docker-Container, der effektiv ein LAMP-Stack ist. Ich benutze Supervisord zur Verwaltung der Prozesse.Docker läuft Composer im Startskript, Komponist läuft nie

Ich kann ein Bash-Skript ausführen, wenn der Container startet, aber ich kann nicht das Skript Composer ausführen.

Mein einfaches Skript

#!/bin/bash 

git clone https://github.com/[..project..].git /var/www/ 
wait 

composer update -d /var/www/ 
wait 

# Just here to test if we make it this far... 
touch /var/www/test 

exit 

Und der Abschnitt von supervisord.conf, dass es

für den Betrieb verantwortlich ist
[program:deploy] 
command=bash deploy.sh 
directory=/usr/local/bin/ 
user=root 
autostart=true 
autorestart=false 
environment=PATH="/usr/bin" 
redirect_stderr=true 

Dieses das Repository erfolgreich geklont und berührt die Testdatei, sondern überspringt läuft Komponist . Wenn ich eine Shell im Container öffne, kann ich das Skript erfolgreich manuell ausführen.

Irgendwelche Ratschläge, wie man das löst?

+0

scheint das Problem Komponist ist, kann nicht gefunden werden, wenn das Skript von supervisord ausgeführt wird .... –

Antwort

0

Problem war mit meiner Supervisord-Konfiguration.

Die richtige Konfiguration ist

[program:deploy] 
command=bash /usr/local/bin/deploy.sh 
autostart=true 
autorestart=false 
redirect_stderr=true 
stdout_logfile=/var/log/composer/run.log 
Verwandte Themen