docker-compose.yml 4.96 KB
version: "3"
services:

  # 服务启动顺序没有做healthcheck,会导致服务启动失败,后期需要补上

  # nacos
  nacos:
    image: nacos/nacos-server:v2.1.0
    hostname: nacos-server
    restart: always
    container_name: project-nacos
    environment:
      - PREFER_HOST_MODE=hostname
      - MODE=standalone
    ports:
      - "8848:8848"

  # nacos config-init
  nacos-setup:
    image: radial/busyboxplus:curl
    container_name: config-init
    volumes:
      - ../config-init:/work
    working_dir: /work/scripts
    restart: "no"
    entrypoint: [ "./nacos-config-quick.sh"]   
    depends_on:
      - nacos
#      - postgres
      - project-user

#   postgres
#  postgres:
#    image: bitnami/postgresql:15.2.0
#    hostname: project-pg
#    restart: always
#    container_name: project-pg
#    environment:
#      - POSTGRESQL_USERNAME=postgres
#      - POSTGRESQL_PASSWORD=postgres
#    ports:
#     5432端口在win机器上会报错
#      - "8432:5432"
#    volumes: 
#      - ../config-init/sql/init.sql:/docker-entrypoint-initdb.d/create_tables.sql
#      - /data1/data/postgresql:/bitnami/postgresql
#
#   postgres web console
#  pgadmin:
#    container_name: project-pgadmin
#    image: dpage/pgadmin4
#    environment:
#      POSTGRES_PASSWORD: postgres
#      PGADMIN_DEFAULT_EMAIL: pgadmin4@pgadmin.org
#       web密码dituhui
#      PGADMIN_DEFAULT_PASSWORD: admin
#      PGADMIN_CONFIG_SERVER_MODE: 'False'
#    ports:
#      - "8050:80"
#    depends_on:
#      - postgres

  # kafka
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
    hostname: zookeeper
  kafka:
    image: wurstmeister/kafka
    command: [start-kafka.sh]
    ports:
      - "9092:9092"
    hostname: kafka
    environment:
      # KAFKA_CREATE_TOPICS: "UploadFile:1:1,GetFile:1:1,TrackUpload:1:1,GetEmailContent:1:1" # topic:partition:replicas
      KAFKA_ADVERTISED_HOST_NAME: kafka # docker-machine ip
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_PORT: 9092
    depends_on:
      - zookeeper

  # seata
  seata-server:
    image: seataio/seata-server:1.5.1
    hostname: seata-server
    restart: always
    container_name: project-seata-server
    ports:
      - "8091:8091"
    environment:
      - SEATA_PORT=8091
      - STORE_MODE=file

  # redis
  redis:
    image: redis:6.2-alpine
    hostname: redis
    restart: always
    container_name: project-redis
    ports:
      - "6379:6379"
    command: redis-server --save 20 1 --loglevel warning  --requirepass 123456

  # gateway
  project-gateway:
    image: project-gateway
    restart: always
    hostname: gateway-service
    build:
      dockerfile: ./project-gateway/Dockerfile
      context: ../
    env_file:
        - .env
    container_name: project-gateway
    volumes:
      - /home/dev_boxi/logs:/logs
    ports:
      - ${GATEWAY_PORT}:${GATEWAY_PORT}
    depends_on:
      - nacos
      
  project-order:
    image: project-order
    restart: always
    build:
      dockerfile: ./project-order/Dockerfile
      context: ../
    env_file:
        - .env
    container_name: project-order
    volumes:
      - /usr/local/src:/usr/local/src
      - /home/dev_boxi/logs:/logs
    ports:
      - ${ORDER_PORT}:${ORDER_PORT}
      - "62001:62001"
    depends_on:
      - nacos
#      - postgres


  # user module
  project-user:
    image: project-user
    restart: always
    build:
      dockerfile: ./project-user/Dockerfile
      context: ../
    env_file:
        - .env
    container_name: project-user
    volumes:
      - /home/dev_boxi/logs:/logs
    ports:
      - ${USER_PORT}:${USER_PORT}
      - "62000:5005"
    depends_on:
      - nacos
#      - postgres


#   gis module
#  project-gis:
#    image: project-gis
#    restart: always
#    build:
#      dockerfile: ./project-gis/Dockerfile
#      context: ../
#    env_file:
#        - .env
#    container_name: project-gis
#    ports:
#      - ${GIS_PORT}:${GIS_PORT}
#    depends_on:
#      - nacos
#      - postgres
#      - project-geometry

#   geometry module
#  project-geometry:
#    image: project-geometry
#    restart: always
#    build:
#      dockerfile: ./project-geometry/Dockerfile
#      context: ../
#    env_file:
#        - .env
#    container_name: project-geometry
#    ports:
#      - ${GEOMETRY_PORT}:${GEOMETRY_PORT}
#    depends_on:
#      - nacos
#
#   district module
#  project-district:
#    image: project-district
#    restart: always
#    build:
#      dockerfile: ./project-district/Dockerfile
#      context: ../
#    env_file:
#        - .env
#    container_name: project-district
#    ports:
#      - ${DISTRICT_PORT}:${DISTRICT_PORT}
#    depends_on:
#      - nacos
      
  # dispatch module
  project-dispatch:
    image: project-dispatch
    restart: always
    build:
      dockerfile: ./project-dispatch/Dockerfile
      context: ../
    env_file:
        - .env
    container_name: project-dispatch
    volumes:
      - /home/dev_boxi/logs:/logs
    ports:
      - ${DISPATCH_PORT}:${DISPATCH_PORT}
    depends_on:
      - nacos