version: '3.9'
|
services:
|
# redis
|
redis:
|
image: redis
|
restart: always
|
container_name: redis
|
ports:
|
- 6379:6379 # 需要可以远程访问
|
volumes:
|
- redisdata:/data
|
networks:
|
- lmk
|
# mysql
|
mysql:
|
image: mysql:8
|
restart: always
|
container_name: mysql
|
ports:
|
- 6033:3306 # 需要可以远程访问
|
volumes:
|
- /usr/local/mysql/data:/var/lib/mysql # 自动数据卷,数据库数据
|
- /usr/local/mysql/conf:/etc/mysql/conf.d # 自动数据卷,数据库配置
|
- /usr/local/mysql/log:/var/log/mysql # 自动数据卷,数据库日志
|
networks:
|
- lmk
|
environment:
|
MYSQL_USER: lmk
|
MYSQL_ROOT_PASSWORD: myk@2025888
|
depends_on:
|
- redis
|
# 检索引擎
|
es:
|
image: elasticsearch:7.9.3
|
restart: always
|
container_name: es
|
ports:
|
- 9200:9200
|
- 9300:9300
|
networks:
|
- lmk
|
environment:
|
discovery.type: single-node
|
depends_on:
|
- redis
|
# rocketmq服务发现
|
rocketmq-nameserver:
|
image: apache/rocketmq:4.8.0
|
restart: always
|
container_name: rocketmq-nameserver
|
ports:
|
- 9876:9876
|
networks:
|
- lmk
|
command: sh mqnamesrv
|
depends_on:
|
- redis
|
# rocketmq服务发现
|
rocketmq:
|
image: apache/rocketmq:4.8.0
|
restart: always
|
container_name: rocketmq
|
ports:
|
- 10912:10912
|
- 10911:10911
|
- 8080:8080
|
- 8081:8081
|
command: sh mqbroker -c /etc/rocketmq/broker.conf
|
environment:
|
- NAMESRV_ADDR=rocketmq-nameserver:9876
|
- AUTO_CREATE_TOPIC_ENABLE=true # 关键配置:允许自动创建主题
|
volumes:
|
- /usr/local/mq/broker.conf:/etc/rocketmq/broker.conf
|
networks:
|
- lmk
|
depends_on:
|
- rocketmq-nameserver
|
# java程序
|
common-api:
|
build:
|
context: ./dockerfiles
|
dockerfile: common-api-dockerfile
|
args:
|
JAR_FILE: /usr/local/java/common-api/common-api-4.3.jar
|
container_name: common-api
|
restart: always
|
ports:
|
- 8890:8890
|
volumes:
|
- /usr/local/java/common-api:/usr/local/java # 将jar包和配置文件映射到容器内
|
networks:
|
- lmk
|
depends_on:
|
- es
|
- rocketmq-nameserver
|
- rocketmq
|
- redis
|
- mysql
|
# java程序
|
consumer:
|
build:
|
context: ./dockerfiles
|
dockerfile: consumer-dockerfile
|
args:
|
JAR_FILE: /usr/local/java/consumer/consumer-4.3.jar
|
container_name: consumer
|
restart: always
|
ports:
|
- 8886:8886
|
volumes:
|
- /usr/local/java/consumer:/usr/local/java # 将jar包和配置文件映射到容器内
|
networks:
|
- lmk
|
depends_on:
|
- es
|
- rocketmq-nameserver
|
- rocketmq
|
- redis
|
- mysql
|
# java程序
|
buyer-api:
|
build:
|
context: ./dockerfiles
|
dockerfile: buyer-api-dockerfile
|
args:
|
JAR_FILE: /usr/local/java/buyer-api/buyer-api-4.3.jar
|
container_name: buyer-api
|
restart: always
|
ports:
|
- 8888:8888
|
volumes:
|
- /usr/local/java/buyer-api:/usr/local/java # 将jar包和配置文件映射到容器内
|
networks:
|
- lmk
|
depends_on:
|
- es
|
- rocketmq-nameserver
|
- rocketmq
|
- redis
|
- mysql
|
# java程序
|
seller-api:
|
build:
|
context: ./dockerfiles
|
dockerfile: seller-api-dockerfile
|
args:
|
JAR_FILE: /usr/local/java/seller-api/seller-api-4.3.jar
|
container_name: seller-api
|
restart: always
|
ports:
|
- 8889:8889
|
volumes:
|
- /usr/local/java/seller-api:/usr/local/java # 将jar包和配置文件映射到容器内
|
networks:
|
- lmk
|
depends_on:
|
- es
|
- rocketmq-nameserver
|
- rocketmq
|
- redis
|
- mysql
|
# java程序
|
manager-api:
|
build:
|
context: ./dockerfiles
|
dockerfile: manager-api-dockerfile
|
args:
|
JAR_FILE: /usr/local/java/manager-api/manager-api-4.3.jar
|
container_name: manager-api
|
restart: always
|
ports:
|
- 8887:8887
|
volumes:
|
- /usr/local/java/manager-api:/usr/local/java # 将jar包和配置文件映射到容器内
|
networks:
|
- lmk
|
depends_on:
|
- es
|
- rocketmq-nameserver
|
- rocketmq
|
- redis
|
- mysql
|
# java程序
|
lmk-job:
|
build:
|
context: ./dockerfiles
|
dockerfile: lmk-job-dockerfile
|
args:
|
JAR_FILE: /usr/local/java/lmk-job/lmk-job-4.3.jar
|
container_name: lmk-job-api
|
restart: always
|
ports:
|
- 10001:10001
|
volumes:
|
- /usr/local/java/lmk-job:/usr/local/java # 将jar包和配置文件映射到容器内
|
networks:
|
- lmk
|
depends_on:
|
- es
|
- rocketmq-nameserver
|
- rocketmq
|
- redis
|
- mysql
|
# xxl-job
|
xxl-job:
|
build:
|
context: ./dockerfiles
|
dockerfile: xxl-job-dockerfile
|
args:
|
JAR_FILE: /usr/local/java/xxl-job/xxl-job-admin-2.3.0.jar
|
container_name: xxl-job
|
restart: always
|
ports:
|
- 9001:9001
|
volumes:
|
- /usr/local/java/xxl-job:/usr/local/java # 将jar包和配置文件映射到容器内
|
networks:
|
- lmk
|
depends_on:
|
- es
|
- rocketmq-nameserver
|
- rocketmq
|
- redis
|
- mysql
|
# nginx
|
nginx:
|
image: nginx
|
container_name: nginx
|
restart: always
|
volumes:
|
- /usr/local/nginx/html:/usr/share/nginx/html # 映射站点文件
|
- /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf # 映射配置文件
|
- /usr/local/nginx/https:/usr/share/nginx/https # ssl
|
ports:
|
- 80:80 # 80、443映射到主机端口
|
- 443:443
|
networks:
|
- lmk
|
depends_on:
|
- common-api
|
- consumer
|
- buyer-api
|
- seller-api
|
- manager-api
|
- lmk-job
|
- xxl-job
|
volumes:
|
redisdata: {}
|
|
networks:
|
lmk:
|
external: true
|