【发布时间】:2023-03-09 23:54:01
【问题描述】:
我有一个 docker 容器,我需要为此运行以下命令
php /var/www/html/artisan queue:work &
它启动一个工作进程来查找并执行它们。
我可以在容器运行时执行 exec -it 来运行它。
但是我需要使用 Dockerfile 来完成,这样当我的容器重新部署时,它会自动启动它。我试过了
RUN php /var/www/html/artisan queue:work
CMD ["php","/var/www/html/artisan","queue:work"]
ENTRYPOINT ["php","/var/www/html/artisan","queue:work"]
当然是分开的。但它们都不起作用。在 CMD 和 ENTRYPOINT 的情况下,我的容器开始发出 502 错误,并且我的服务变得无法访问。
我做错了什么?
【问题讨论】:
-
用
docker logs <container_name>查看日志肯定会帮助我们理解为什么容器没有启动。 -
尝试以这种方式运行命令:
CMD ["/bin/bash","-c","php","/var/www/html/artisan","queue:work && tail -f /dev/null"] -
您是否尝试在与其他容器相同的容器中启动工作程序?通常每个容器只启动一个进程;使用第二个容器(基于相同的图像但使用不同的命令)来启动 worker。
-
是的,我想在同一个容器中做这两个..
标签: php laravel docker dockerfile