Docker在启动脚本中运行composer,composer永远不会运行

时间:2016-03-18 22:41:39

标签: docker composer-php supervisord

我有一个Docker容器,它实际上是一个LAMP堆栈。我使用supervisord来管理流程。

我可以在容器启动时执行bash脚本,但是我无法让脚本运行composer。

我的简单脚本

#!/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

来自supervisord.conf的负责运行它的部分

[program:deploy]
command=bash deploy.sh
directory=/usr/local/bin/
user=root
autostart=true
autorestart=false
environment=PATH="/usr/bin"
redirect_stderr=true

这会成功克隆存储库,并触及测试文件但跳过正在运行的编辑器。如果我在容器中打开一个shell,我可以手动成功执行脚本。

关于如何解决这个问题的任何建议?

1 个答案:

答案 0 :(得分:0)

问题出在我的supervisord配置中。

正确的配置是

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