Tips Distributed Architecture
COO
CEO
Advisor
With built-in \( \LaTeX \) typesetting, you can include math formulas like this:
Our client team is ready to hear about your project. We're available by email or phone 24/7
+1 555 0194
### .bashrc
PROMPT_COMMAND=prompter
function prompter() {
export PS1="\[\e[32m\]$MICRO_SERVICE_NAME\[\e[m\] 🔥 \u$(_env)>"
}
function _env() {
ENV=$( ([[ -f /home/adminweb/bo/current/microservices/.env.local ]] && cat /home/adminweb/bo/current/microservices/.env.local || cat /home/adminweb/bo/current/microservices/.env) | grep "APP_ENV" | cut -f 2 -d"=" )
echo "(\[\e[33m\]$ENV\[\e[m\])"
}
alias l="ls -la"
### Dockerfile
COPY .bashrc /var/www/.bashrc
.DEFAULT_GOAL := help
ifndef CI_JOB_ID
# COLORS
GREEN := $(shell tput -Txterm setaf 2)
YELLOW := $(shell tput -Txterm setaf 3)
WHITE := $(shell tput -Txterm setaf 7)
RESET := $(shell tput -Txterm sgr0)
TARGET_MAX_CHAR_NUM=30
endif
help:
@echo "${GREEN}BO Meyclub${RESET} https://bo.meyclub.docker"
@echo "Micro Service: ${GREEN}$(MICRO_SERVICE_NAME)${RESET}"
@awk '/^[a-zA-Z\-\_0-9]+:/ { \
helpMessage = match(lastLine, /^## (.*)/); \
if (helpMessage) { \
helpCommand = substr($$1, 0, index($$1, ":")); helpMessage = substr(lastLine, RSTART + 3, RLENGTH); \
printf " ${YELLOW}%-$(TARGET_MAX_CHAR_NUM)s${RESET} ${GREEN}%s${RESET}\n", helpCommand, helpMessage; \
} \
isTopic = match(lastLine, /^###/); \
if (isTopic) { printf "\n%s\n", $$1; } \
} { lastLine = $$0 }' $(MAKEFILE_LIST)
#################################
RabbitMQ:
## Create RabbitMQ exchanges and queues and setup the bindings
rabbitmq: wait-rabbitmq
@$(SYMFONY) rabbitmq:setup-fabric
@$(RABBITMQ) sh -c 'rabbitmqctl add_vhost bpm'
@$(SYMFONY) messenger:setup-transports
## Delete all the queues
rabbitmq-reset: wait-rabbitmq
$(DOCKER_EXEC) rabbitmq rabbitmqctl stop_app
$(DOCKER_EXEC) rabbitmq rabbitmqctl reset
$(DOCKER_EXEC) rabbitmq rabbitmqctl start_app
## Run RabbitMQ consumer to sync_legacy_db
rabbitmq-consumer: rabbitmq
$(SYMFONY) rabbitmq:consumer sync_legacy_db
API_CONTAINERS = "gift-voucher-api" "mobile-api" "client-api" \
"common-api" "product-api" "supplier-api" "payment-method-api" \
"stock-api" "user-api" "search-api" "delivery-api" "invoice-api" \
"ticketing-api"
## View output from micro service containers
logs-ms:
$(DOCKER_COMPOSE) logs -f --tail 0 $(API_CONTAINERS)
define api_command
@ for ms in $(API_CONTAINERS); \
do \
echo "MicroService: ${GREEN}$$ms${RESET}"; \
$(DOCKER_EXEC) --user www-data $$ms $1 || exit 1; \
done
endef
phpunit-api-gateway:
$(call api_command, ./bin/phpunit --group api-gateway --testsuite $$ms)
## Open the Symfony web profiler for Api.
profile:
@$(eval PROFILE_LINK = "https://bo.meyclub.docker/_profiler/latest")
@x-www-browser $(PROFILE_LINK) | google-chrome $(PROFILE_LINK) | open -a "Google Chrome" $(PROFILE_LINK)
framework:
profiler:
only_exceptions: false
dsn: 'file:%kernel.project_dir%/var/profiler'
Tout ça en 20mn