version: "3.8" services: mall4j-mysql: container_name: mall4j-mysql environment: - TZ=Asia/Shanghai - MYSQL_ROOT_PASSWORD=123456 expose: - 3306 ports: - 3306:3306 hostname: mall4j-mysql image: mysql:5.7 networks: mall4j-network: ipv4_address: 192.168.159.3 restart: always volumes: - ./mysql/data:/var/lib/mysql - ./mysql/my.cnf:/etc/mysql/my.cnf - ./mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d mall4j-redis: container_name: mall4j-redis expose: - 6379 ports: - 6379:6379 hostname: mall4j-redis image: redis:5.0 networks: mall4j-network: ipv4_address: 192.168.159.4 restart: always mall4j-elasticsearch: container_name: mall4j-elasticsearch environment: - TAKE_FILE_OWNERSHIP=true - discovery.type=single-node - ES_JAVA_OPTS=-Xms512m -Xmx512m expose: - 9200 - 9300 hostname: mall4j-elasticsearch image: elasticsearch:7.13.2 networks: mall4j-network: ipv4_address: 192.168.159.5 restart: always volumes: - ./elasticsearch/data:/usr/share/elasticsearch/data - ./elasticsearch/plugins:/usr/share/elasticsearch/plugins - ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml mall4j-kibana: image: kibana:7.13.2 container_name: mall4j-kibana restart: always ports: - 5601:5601 networks: mall4j-network: ipv4_address: 192.168.159.13 links: - mall4j-elasticsearch:elasticsearch depends_on: - mall4j-elasticsearch mall4j-job: container_name: mall4j-job environment: - PARAMS=--spring.datasource.url=jdbc:mysql://mall4j-mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 \ --spring.datasource.username=root \ --spring.datasource.password=123456 \ --spring.mail.host=smtp.qq.com \ --spring.mail.port=25 \ --spring.mail.username=xxxx@qq.com \ --spring.mail.password=xxxx \ --spring.mail.properties.mail.smtp.auth=true \ --spring.mail.properties.mail.smtp.starttls.enable=true \ --spring.mail.properties.mail.smtp.starttls.required=true \ --spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory \ --xxl.job.accessToken= expose: - 8080 ports: - 8080:8080 hostname: mall4j-job image: xuxueli/xxl-job-admin:2.3.0 networks: mall4j-network: ipv4_address: 192.168.159.6 restart: always mall4j-minio: command: server /data container_name: mall4j-minio environment: - MINIO_ROOT_USER=admin - MINIO_ROOT_PASSWORD=12345678 expose: - 9000 hostname: mall4j-minio image: minio/minio:RELEASE.2021-06-17T00-10-46Z networks: mall4j-network: ipv4_address: 192.168.159.7 restart: always volumes: - ./minio/data:/data mall4j-nginx: container_name: mall4j-nginx hostname: mall4j-nginx image: nginx:1.20 networks: mall4j-network: ipv4_address: 192.168.159.8 ports: - 80:80 - 443:443 restart: always volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./nginx/conf.d:/etc/nginx/conf.d - ./nginx/html:/usr/share/nginx/html - ./nginx/ssl:/etc/nginx/ssl mall4j-api: build: context: ./yami-shop-api container_name: mall4j-api environment: - TZ=Asia/Shanghai - MYSQL_HOST=mall4j-mysql - MYSQL_PORT=3306 - MYSQL_DATABASE=yami_bbc - MYSQL_USERNAME=root - MYSQL_PASSWORD=123456 - REDIS_HOST=mall4j-redis - REDIS_PORT=6379 - REDIS_DATABASE=1 - REDIS_PASSWORD= - ELASTIC_ADDRESS=http://mall4j-elasticsearch:9200 hostname: mall4j-api image: mall4j-api networks: mall4j-network: ipv4_address: 192.168.159.9 expose: - 8112 restart: always volumes: - ./cert:/cert - ./yami-shop-api/log:/opt/projects/yami-b2b2c/log mall4j-multishop: build: context: ./yami-shop-multishop container_name: mall4j-multishop environment: - TZ=Asia/Shanghai - MYSQL_HOST=mall4j-mysql - MYSQL_PORT=3306 - MYSQL_DATABASE=yami_bbc - MYSQL_USERNAME=root - MYSQL_PASSWORD=123456 - REDIS_HOST=mall4j-redis - REDIS_PORT=6379 - REDIS_DATABASE=1 - REDIS_PASSWORD= - ELASTIC_ADDRESS=http://mall4j-elasticsearch:9200 hostname: mall4j-multishop image: mall4j-multishop networks: mall4j-network: ipv4_address: 192.168.159.10 expose: - 8113 restart: always volumes: - ./cert:/cert - ./yami-shop-multishop/log:/opt/projects/yami-b2b2c/log mall4j-platform: build: context: ./yami-shop-platform container_name: mall4j-platform environment: - TZ=Asia/Shanghai - MYSQL_HOST=mall4j-mysql - MYSQL_PORT=3306 - MYSQL_DATABASE=yami_bbc - MYSQL_USERNAME=root - MYSQL_PASSWORD=123456 - REDIS_HOST=mall4j-redis - REDIS_PORT=6379 - REDIS_DATABASE=1 - REDIS_PASSWORD= - ELASTIC_ADDRESS=http://mall4j-elasticsearch:9200 hostname: mall4j-platform image: mall4j-platform networks: mall4j-network: ipv4_address: 192.168.159.11 expose: - 8114 restart: always volumes: - ./cert:/cert - ./yami-shop-platform/log:/opt/projects/yami-b2b2c/log mall4j-im: build: context: ./yami-shop-im container_name: mall4j-im environment: - TZ=Asia/Shanghai - MYSQL_HOST=mall4j-mysql - MYSQL_PORT=3306 - MYSQL_DATABASE=yami_bbc - MYSQL_USERNAME=root - MYSQL_PASSWORD=123456 - REDIS_HOST=mall4j-redis - REDIS_PORT=6379 - REDIS_DATABASE=1 - REDIS_PASSWORD= hostname: mall4j-im image: mall4j-im networks: mall4j-network: ipv4_address: 192.168.159.12 expose: - 8115 restart: always volumes: - ./yami-shop-im/log:/opt/projects/yami-b2b2c/log mall4j-pc: build: context: ./yami-shop-pc container_name: mall4j-pc environment: - TZ=Asia/Shanghai hostname: mall4j-pc image: mall4j-pc networks: mall4j-network: ipv4_address: 192.168.159.14 ports: - 3333:3333 #一般来说是不会用到这个的,不过会出现一种情况就是在本机curl api的域名无法访问, #因为有的公司在做内部网络的时候,没有做好自己域名解析到自己服务器访问的情况,这个时候只能加host, #不然会出现服务端无法渲染,访问其他页面却能访问的情况 # extra_hosts: # - api.mall4j.com:内网地址 restart: always networks: mall4j-network: driver: bridge ipam: config: - subnet: 192.168.159.0/24 name: mall4j-network