diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..dfb0fac --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,175 @@ +version: "3" + +services: + zookeeper: + image: wurstmeister/zookeeper + ports: + - "2181:2181" + networks: + justpickup-network: + ipv4_address: 172.18.0.100 + kafka: + image: wurstmeister/kafka:2.12-2.3.0 + ports: + - "9092:9092" + environment: + KAFKA_ADVERTISED_HOST_NAME: 172.18.0.101 + KAFKA_CREATE_TOPICS: "test:1:1" + KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + depends_on: + - zookeeper + networks: + - justpickup-network + + discovery: + container_name: discovery + build: + context: ./discovery-service/ + dockerfile: Dockerfile + ports: + - 8761:8761 + networks: + - justpickup-network + + owner-gateway: + container_name: owner-gateway + build: + context: ./owner-apigateway-service/ + dockerfile: Dockerfile + ports: + - 8001:8001 + networks: + - justpickup-network + environment: + - eureka.client.serviceUrl.defaultZone=http://discovery:8761/eureka/ + depends_on: + - discovery + + customer-gateway: + container_name: customer-gateway + build: + context: ./customer-apigateway-service/ + dockerfile: Dockerfile + ports: + - 8000:8000 + networks: + - justpickup-network + environment: + - eureka.client.serviceUrl.defaultZone=http://discovery:8761/eureka/ + depends_on: + - discovery + + config: + container_name: config + build: + context: ./config-service/ + dockerfile: Dockerfile + ports: + - 8888:8888 + networks: + - justpickup-network + + postgres-db: + container_name: postgres + build: + context: ./postgres_data/ + dockerfile: Dockerfile + ports: + - 5432:5432 + networks: + - justpickup-network + + redis: + container_name: redis + image: redis:alpine + command: redis-server --port 6379 + hostname: redis_boot + labels: + - "name=redis" + - "mode=standalone" + ports: + - 6379:6379 + networks: + - justpickup-network + + user-service: + container_name: user + build: + context: ./user-service/ + dockerfile: Dockerfile + environment: + - eureka.client.serviceUrl.defaultZone=http://discovery:8761/eureka/ + - spring.config.import=optional:configserver:http://config:8888 + - spring.datasource.url=jdbc:postgresql://postgres:5432/userdb + - spring.redis.host=redis + depends_on: + - discovery + - config + - postgres-db + - redis + restart: always + networks: + - justpickup-network + + order-service: + container_name: order + build: + context: ./order-service/ + dockerfile: Dockerfile + environment: + - eureka.client.serviceUrl.defaultZone=http://discovery:8761/eureka/ + - spring.datasource.url=jdbc:postgresql://postgres:5432/orderdb + - kafka.host=172.18.0.101 + - kafka.port=9092 + depends_on: + - discovery + - config + - postgres-db + - kafka + restart: always + networks: + - justpickup-network + + store-service: + container_name: store + build: + context: ./store-service/ + dockerfile: Dockerfile + environment: + - eureka.client.serviceUrl.defaultZone=http://discovery:8761/eureka/ + - spring.datasource.url=jdbc:postgresql://postgres:5432/storedb + depends_on: + - discovery + - config + - postgres-db + restart: always + networks: + - justpickup-network + + notification-service: + container_name: notification + build: + context: ./notification-service/ + dockerfile: Dockerfile + environment: + - eureka.client.serviceUrl.defaultZone=http://discovery:8761/eureka/ + - spring.datasource.url=jdbc:postgresql://postgres:5432/notificationdb + depends_on: + - discovery + - config + - postgres-db + restart: always + networks: + - justpickup-network + +networks: + justpickup-network: + driver: bridge + ipam: + config: + - subnet: 172.18.0.0/16 + gateway: 172.18.0.1 + +