ads-marketing/docker-compose.yml
romantarkin 93e5651d06 fix
2025-07-29 12:29:29 +05:00

130 lines
3.1 KiB
YAML

version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: mysql-auth
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: authdb
MYSQL_USER: authuser
MYSQL_PASSWORD: authpassword
ports:
- '3310:3306'
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
auth-service:
image: node:20
container_name: auth-service
restart: always
environment:
DB_HOST: mysql
DB_PORT: 3306
DB_NAME: authdb
DB_USER: authuser
DB_PASSWORD: authpassword
JWT_SECRET: supersecretkey
KAFKA_BROKER: kafka:9092
KAFKA_CLIENT_ID: auth-service
KAFKA_GROUP_ID: auth-service-group
volumes:
- ./auth-service:/usr/src/app
working_dir: /usr/src/app
command: bash -c "npm install && npm start"
depends_on:
mysql:
condition: service_healthy
mail-service:
image: node:20
container_name: mail-service
restart: always
volumes:
- ./mail-service:/usr/src/app
working_dir: /usr/src/app
command: bash -c "npm install && npm start"
environment:
DB_HOST: mysql
DB_PORT: 3306
DB_NAME: authdb
DB_USER: authuser
DB_PASSWORD: authpassword
KAFKA_BROKER: kafka:9092
KAFKA_CLIENT_ID: mail-service
KAFKA_GROUP_ID: mail-service-group
nginx-proxy-manager:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '8080:80'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
client:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: client
restart: always
depends_on:
auth-service:
condition: service_started
zookeeper:
image: confluentinc/cp-zookeeper:7.5.0
container_name: zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
- '2181:2181'
volumes:
- zookeeper_data:/var/lib/zookeeper/data
- zookeeper_log:/var/lib/zookeeper/log
kafka:
image: confluentinc/cp-kafka:7.5.0
container_name: kafka
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
volumes:
- kafka_data:/var/lib/kafka/data
kafka-ui:
container_name: kafka-ui
image: provectuslabs/kafka-ui:latest
ports:
- "127.0.0.1:8080:8080"
environment:
DYNAMIC_CONFIG_ENABLED: 'true'
volumes:
- ./kafka.yaml:/etc/kafkaui/dynamic_config.yaml
depends_on:
- kafka
volumes:
mysql_data:
kafka_data:
zookeeper_data:
zookeeper_log: