API & consumers now are executed using docker
This commit is contained in:
9
.docker/php-cli/Dockerfile
Normal file
9
.docker/php-cli/Dockerfile
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
FROM php:8.1-cli
|
||||||
|
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get -y install librabbitmq-dev \
|
||||||
|
$PHPIZE_DEPS \
|
||||||
|
&& docker-php-ext-install pdo_mysql mysqli pcntl \
|
||||||
|
&& pecl install redis \
|
||||||
|
&& pecl install amqp \
|
||||||
|
&& docker-php-ext-enable redis amqp
|
||||||
25
Makefile
25
Makefile
@@ -14,10 +14,12 @@ SHELL := bash
|
|||||||
MAKEFLAGS += --warn-undefined-variables
|
MAKEFLAGS += --warn-undefined-variables
|
||||||
MAKEFLAGS += --no-builtin-rules
|
MAKEFLAGS += --no-builtin-rules
|
||||||
|
|
||||||
DOCKER = $(shell which docker)
|
|
||||||
|
|
||||||
# Shortcut for docker-compose command
|
# Shortcuts
|
||||||
|
DOCKER = $(shell which docker)
|
||||||
DOCKER_COMPOSE = $(DOCKER) compose
|
DOCKER_COMPOSE = $(DOCKER) compose
|
||||||
|
HTTPIE = docker run --network=host -ti --rm alpine/httpie
|
||||||
|
PHP = $(DOCKER_COMPOSE) exec app php
|
||||||
|
|
||||||
# Default target when run with just 'make'
|
# Default target when run with just 'make'
|
||||||
default: start
|
default: start
|
||||||
@@ -25,19 +27,18 @@ default: start
|
|||||||
.PHONY: start
|
.PHONY: start
|
||||||
start:
|
start:
|
||||||
$(DOCKER_COMPOSE) up -d --remove-orphans
|
$(DOCKER_COMPOSE) up -d --remove-orphans
|
||||||
symfony serve -d --no-tls
|
|
||||||
|
|
||||||
.PHONY: infrastructure
|
.PHONY: infrastructure
|
||||||
infrastructure:
|
infrastructure:
|
||||||
redis-cli flushall
|
$(DOCKER_COMPOSE) exec redis redis-cli flushall
|
||||||
http --auth guest:guest DELETE http://localhost:15672/api/queues/%2F/events/contents
|
$(HTTPIE) --auth guest:guest DELETE http://localhost:15672/api/queues/%2F/events/contents
|
||||||
http --auth guest:guest DELETE http://localhost:15672/api/queues/%2F/commands/contents
|
$(HTTPIE) --auth guest:guest DELETE http://localhost:15672/api/queues/%2F/commands/contents
|
||||||
http --auth guest:guest DELETE http://localhost:15672/api/queues/%2F/projections/contents
|
$(HTTPIE) --auth guest:guest DELETE http://localhost:15672/api/queues/%2F/projections/contents
|
||||||
http --auth guest:guest DELETE http://localhost:15672/api/queues/%2F/failed_messages/contents
|
$(HTTPIE) --auth guest:guest DELETE http://localhost:15672/api/queues/%2F/failed_messages/contents
|
||||||
php bin/console doc:sch:drop --force
|
$(PHP) bin/console doc:sch:drop --force
|
||||||
php bin/console doc:sch:create
|
$(PHP) bin/console doc:sch:create
|
||||||
|
$(PHP) bin/console messenger:setup-transports
|
||||||
|
|
||||||
.PHONY: stop
|
.PHONY: stop
|
||||||
stop:
|
stop:
|
||||||
$(DOCKER_COMPOSE) stop
|
$(DOCKER_COMPOSE) stop
|
||||||
symfony server:stop
|
|
||||||
@@ -18,6 +18,7 @@
|
|||||||
"ramsey/uuid": "^4.0",
|
"ramsey/uuid": "^4.0",
|
||||||
"ramsey/uuid-doctrine": "^1.6",
|
"ramsey/uuid-doctrine": "^1.6",
|
||||||
"snc/redis-bundle": "^4.0",
|
"snc/redis-bundle": "^4.0",
|
||||||
|
"symfony/amqp-messenger": "6.0.*",
|
||||||
"symfony/apache-pack": "^1.0",
|
"symfony/apache-pack": "^1.0",
|
||||||
"symfony/asset": "6.0.*",
|
"symfony/asset": "6.0.*",
|
||||||
"symfony/console": "6.0.*",
|
"symfony/console": "6.0.*",
|
||||||
|
|||||||
71
composer.lock
generated
71
composer.lock
generated
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "4981dd3569bc0932ba4332ad6566e286",
|
"content-hash": "0d7c626b3265b177be533cc7e54b0161",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "api-platform/core",
|
"name": "api-platform/core",
|
||||||
@@ -2667,6 +2667,75 @@
|
|||||||
},
|
},
|
||||||
"time": "2022-03-05T09:40:24+00:00"
|
"time": "2022-03-05T09:40:24+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "symfony/amqp-messenger",
|
||||||
|
"version": "v6.0.5",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/symfony/amqp-messenger.git",
|
||||||
|
"reference": "fd01ff7e526a9bb87e8c7ba72cbb43750dfafe21"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/symfony/amqp-messenger/zipball/fd01ff7e526a9bb87e8c7ba72cbb43750dfafe21",
|
||||||
|
"reference": "fd01ff7e526a9bb87e8c7ba72cbb43750dfafe21",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-amqp": "*",
|
||||||
|
"php": ">=8.0.2",
|
||||||
|
"symfony/messenger": "^5.4|^6.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"symfony/event-dispatcher": "^5.4|^6.0",
|
||||||
|
"symfony/process": "^5.4|^6.0",
|
||||||
|
"symfony/property-access": "^5.4|^6.0",
|
||||||
|
"symfony/serializer": "^5.4|^6.0"
|
||||||
|
},
|
||||||
|
"type": "symfony-messenger-bridge",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Symfony\\Component\\Messenger\\Bridge\\Amqp\\": ""
|
||||||
|
},
|
||||||
|
"exclude-from-classmap": [
|
||||||
|
"/Tests/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Fabien Potencier",
|
||||||
|
"email": "fabien@symfony.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Symfony Community",
|
||||||
|
"homepage": "https://symfony.com/contributors"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Symfony AMQP extension Messenger Bridge",
|
||||||
|
"homepage": "https://symfony.com",
|
||||||
|
"support": {
|
||||||
|
"source": "https://github.com/symfony/amqp-messenger/tree/v6.0.5"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://symfony.com/sponsor",
|
||||||
|
"type": "custom"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/fabpot",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2022-02-09T15:52:48+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/apache-pack",
|
"name": "symfony/apache-pack",
|
||||||
"version": "v1.0.1",
|
"version": "v1.0.1",
|
||||||
|
|||||||
@@ -21,8 +21,33 @@ services:
|
|||||||
MYSQL_DATABASE: db
|
MYSQL_DATABASE: db
|
||||||
app:
|
app:
|
||||||
build: .docker/php
|
build: .docker/php
|
||||||
|
init: true
|
||||||
env_file: .env.docker.dist
|
env_file: .env.docker.dist
|
||||||
ports:
|
ports:
|
||||||
- "8000:80"
|
- "8000:80"
|
||||||
|
volumes:
|
||||||
|
- ./:/var/www/html
|
||||||
|
async-commands-consumer:
|
||||||
|
build: .docker/php-cli
|
||||||
|
init: true
|
||||||
|
env_file: .env.docker.dist
|
||||||
|
working_dir: /var/www/html
|
||||||
|
command: "php bin/console messenger:consume commands_async -vv"
|
||||||
|
volumes:
|
||||||
|
- ./:/var/www/html
|
||||||
|
async-events-consumer:
|
||||||
|
build: .docker/php-cli
|
||||||
|
init: true
|
||||||
|
env_file: .env.docker.dist
|
||||||
|
working_dir: /var/www/html
|
||||||
|
command: "php bin/console messenger:consume events_async -vv"
|
||||||
|
volumes:
|
||||||
|
- ./:/var/www/html
|
||||||
|
async-projections-consumer:
|
||||||
|
build: .docker/php-cli
|
||||||
|
init: true
|
||||||
|
env_file: .env.docker.dist
|
||||||
|
working_dir: /var/www/html
|
||||||
|
command: "php bin/console messenger:consume projections_async -vv"
|
||||||
volumes:
|
volumes:
|
||||||
- ./:/var/www/html
|
- ./:/var/www/html
|
||||||
@@ -331,6 +331,9 @@
|
|||||||
"config/packages/snc_redis.yaml"
|
"config/packages/snc_redis.yaml"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"symfony/amqp-messenger": {
|
||||||
|
"version": "v6.0.5"
|
||||||
|
},
|
||||||
"symfony/apache-pack": {
|
"symfony/apache-pack": {
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"recipe": {
|
"recipe": {
|
||||||
|
|||||||
Reference in New Issue
Block a user