У меня есть два проекта Laravel. Каждый проект находится в своем собственном док-контейнере:
Первый проект:
potatoes:
build:
context: ./potatoes
dockerfile: Dockerfile
args:
environment: local
ports:
- '5000:80'
depends_on:
- redis
- potatoesdb
- elasticsearch
volumes:
- ./potatoes:/var/www/html/app
Второй проект:
beanstalk:
build:
context: ./beanstalk
dockerfile: Dockerfile
args:
environment: local
ports:
- '5004:80'
depends_on:
- redis
- beanstalkdb
volumes:
- ./beanstalk:/var/www/html/app
links:
- potatoes
Каждый имеет свою конфигурацию докера с супервизором:
[supervisord]
nodaemon = true
logfile = /tmp/supervisord.log
logfile_maxbytes = 0
[program:php-fpm]
command=/usr/local/sbin/php-fpm --nodaemonize --fpm-config /usr/local/etc/php-fpm.conf
numprocs=1
autostart=true
autorestart=false
[program:nginx]
command =/usr/sbin/nginx -g "daemon off;"
stdout_logfile = /dev/stdout
stdout_logfile_maxbytes = 0
stderr_logfile = /dev/stderr
stderr_logfile_maxbytes = 0
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
numprocs=3
redirect_stderr=true
stdout_logfile=/tmp/worker.log
Мне нужно сделать следующее, но я не знаю, возможно ли это сделать:
В моем первом проекте я создал задание: TestJobQueue. Когда это задание завершается, необходимо запустить задание в другом проекте с именем TestJobQueue.
Я не знаю, как вызвать одну и ту же очередь для первого и второго заданий проекта. Я не знаю, если это проблема с Докером, с рабочим, или это просто невозможно.
Есть идеи?