mirror of
				https://github.com/3ybactuk/marketplace-go-service-project.git
				synced 2025-10-30 05:53:45 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			189 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| volumes:
 | |
|   prometheus_data: {}
 | |
|   grafana_data: {}
 | |
|   shard1-data: {}
 | |
|   shard2-data: {}
 | |
| 
 | |
| services:
 | |
|   # cart:
 | |
|   #   build:
 | |
|   #     context: .
 | |
|   #     dockerfile: cart/Dockerfile
 | |
|   #   ports:
 | |
|   #     - "8080:8080"
 | |
|   #   depends_on:
 | |
|   #     - product-service
 | |
| 
 | |
|   # product-service:
 | |
|   #   image: gitlab-registry.ozon.dev/go/classroom-18/students/homework-draft/products:latest
 | |
|   #   ports:
 | |
|   #     - "8082:8082"
 | |
| 
 | |
|   # loms:
 | |
|   #   build: 
 | |
|   #     context: .
 | |
|   #     dockerfile: loms/Dockerfile
 | |
|   #   depends_on:
 | |
|   #     postgres-master:
 | |
|   #       condition: service_started
 | |
|   #     init-kafka:
 | |
|   #       condition: service_completed_successfully
 | |
|   #   ports:
 | |
|   #     - "8083:8083"
 | |
|   #     - "8084:8084"
 | |
|   #     - "8085:8085"
 | |
| 
 | |
|   # notifier:
 | |
|   #   build:
 | |
|   #     context: .
 | |
|   #     dockerfile: notifier/Dockerfile
 | |
|   #   depends_on:
 | |
|   #     init-kafka:
 | |
|   #       condition: service_completed_successfully
 | |
|   #   deploy:
 | |
|   #     replicas: 3
 | |
| 
 | |
|   # comments:
 | |
|   #   build: 
 | |
|   #     context: .
 | |
|   #     dockerfile: comments/Dockerfile
 | |
|   #   depends_on:
 | |
|   #     postgres-comments-shard-1:
 | |
|   #       condition: service_started
 | |
|   #     postgres-comments-shard-2:  
 | |
|   #       condition: service_started
 | |
|   #   ports:
 | |
|   #     - "8083:8083"
 | |
|   #     - "8084:8084"
 | |
|   #     - "8085:8085"
 | |
| 
 | |
|   postgres-master:
 | |
|     image: gitlab-registry.ozon.dev/go/classroom-18/students/base/postgres:16
 | |
|     container_name: postgres-master
 | |
|     environment:
 | |
|       - POSTGRESQL_USERNAME=user
 | |
|       - POSTGRESQL_PASSWORD=password
 | |
|       - POSTGRESQL_DATABASE=route256
 | |
|       - POSTGRESQL_REPLICATION_MODE=master
 | |
|       - POSTGRESQL_REPLICATION_USER=repl_user
 | |
|       - POSTGRESQL_REPLICATION_PASSWORD=repl_password
 | |
|       - POSTGRESQL_SYNCHRONOUS_COMMIT_MODE=on
 | |
|       - POSTGRESQL_NUM_SYNCHRONOUS_REPLICAS=1
 | |
|     ports:
 | |
|       - "5433:5432"
 | |
| 
 | |
|   postgres-replica:
 | |
|     image: gitlab-registry.ozon.dev/go/classroom-18/students/base/postgres:16
 | |
|     container_name: postgres-replica
 | |
|     depends_on:
 | |
|       - postgres-master
 | |
|     environment:
 | |
|       - POSTGRESQL_DATABASE=route256
 | |
|       - POSTGRESQL_USERNAME=user
 | |
|       - POSTGRESQL_PASSWORD=password
 | |
|       - POSTGRESQL_REPLICATION_MODE=slave
 | |
|       - POSTGRESQL_REPLICATION_USER=repl_user
 | |
|       - POSTGRESQL_REPLICATION_PASSWORD=repl_password
 | |
|       - POSTGRESQL_MASTER_HOST=postgres-master
 | |
|       - POSTGRESQL_MASTER_PORT_NUMBER=5432
 | |
|       - POSTGRESQL_SYNCHRONOUS_COMMIT_MODE=on
 | |
|       - POSTGRESQL_NUM_SYNCHRONOUS_REPLICAS=1
 | |
|     ports:
 | |
|       - "5434:5432"
 | |
| 
 | |
|   postgres-comments-shard-1:
 | |
|     image: gitlab-registry.ozon.dev/go/classroom-18/students/base/postgres:16
 | |
|     environment:
 | |
|       POSTGRES_DB: comments_db
 | |
|       POSTGRES_USER: comments-user-1
 | |
|       POSTGRES_PASSWORD: comments-password-1
 | |
|     ports:
 | |
|       - "5438:5432"
 | |
|     volumes:
 | |
|       - shard1-data:/var/lib/postgresql/data
 | |
| 
 | |
|   postgres-comments-shard-2:
 | |
|     image: gitlab-registry.ozon.dev/go/classroom-18/students/base/postgres:16
 | |
|     environment:
 | |
|       POSTGRES_DB: comments_db
 | |
|       POSTGRES_USER: comments-user-2
 | |
|       POSTGRES_PASSWORD: comments-password-2
 | |
|     ports:
 | |
|       - "5439:5432"
 | |
|     volumes:
 | |
|       - shard2-data:/var/lib/postgresql/data
 | |
| 
 | |
|   kafka-ui:
 | |
|     container_name: kafka-ui
 | |
|     image: provectuslabs/kafka-ui:latest
 | |
|     ports:
 | |
|       - 8095:8080
 | |
|     environment:
 | |
|       KAFKA_CLUSTERS_0_NAME: local
 | |
|       KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka0:29092
 | |
|       DYNAMIC_CONFIG_ENABLED: "true"
 | |
| 
 | |
|   kafka0:
 | |
|     container_name: kafka
 | |
|     image: confluentinc/cp-kafka:7.7.1.arm64
 | |
|     ports:
 | |
|       - 9092:9092
 | |
|     expose:
 | |
|       - '29092'
 | |
|     environment:
 | |
|       KAFKA_NODE_ID: 1
 | |
|       KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
 | |
|       KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka0:29092,PLAINTEXT_HOST://localhost:9092
 | |
|       KAFKA_LISTENERS: PLAINTEXT://kafka0:29092,CONTROLLER://kafka0:29093,PLAINTEXT_HOST://:9092
 | |
|       KAFKA_CONTROLLER_LISTENER_NAMES: "CONTROLLER"
 | |
|       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
 | |
|       KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
 | |
|       KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
 | |
|       KAFKA_CONTROLLER_QUORUM_VOTERS: "1@kafka0:29093"
 | |
|       KAFKA_PROCESS_ROLES: "broker,controller"
 | |
|       KAFKA_LOG_DIRS: "/tmp/kraft-combined-logs"
 | |
|       CLUSTER_ID: 'MkU3OEVBNTcwNTJENDM2Qk'
 | |
| 
 | |
|   init-kafka:
 | |
|     image: confluentinc/cp-kafka:7.7.1.arm64
 | |
|     depends_on:
 | |
|       - kafka0
 | |
|     entrypoint: [ '/bin/sh', '-c' ]
 | |
|     command: |
 | |
|       "
 | |
|       # blocks until kafka is reachable
 | |
|       kafka-topics --bootstrap-server kafka:29092 --list
 | |
| 
 | |
|       echo -e 'Creating kafka topics'
 | |
|       kafka-topics --create --topic loms.order-events --bootstrap-server kafka:29092 --partitions 2 --replication-factor 1
 | |
| 
 | |
|       echo -e 'Successfully created the following topics:'
 | |
|       kafka-topics --bootstrap-server kafka:29092 --list
 | |
|       "
 | |
| 
 | |
|   prometheus:
 | |
|     image: prom/prometheus:latest
 | |
|     volumes:
 | |
|       - ./prometheus/:/etc/prometheus/
 | |
|       - prometheus_data:/prometheus
 | |
|     command:
 | |
|       - '--config.file=/etc/prometheus/prometheus.yml'
 | |
|       - '--storage.tsdb.path=/prometheus'
 | |
|       - '--web.console.libraries=/usr/share/prometheus/console_libraries'
 | |
|       - '--web.console.templates=/usr/share/prometheus/consoles'
 | |
|     ports:
 | |
|       - "9090:9090"
 | |
| 
 | |
|   grafana:
 | |
|     image: grafana/grafana:latest
 | |
|     volumes:
 | |
|       - grafana_data:/var/lib/grafana
 | |
|     ports:
 | |
|       - "3000:3000"
 | |
| 
 | |
|   jaeger:
 | |
|     image: jaegertracing/all-in-one:latest
 | |
|     ports:
 | |
|       - "16686:16686"
 | |
|       - "4318:4318"
 | 
