# 项目开发
需求场景
现在我需要用 docker compose 来部署
- mysql8(3306 端口)username=root,password=123456
- redis6(无密码,6379端口)、
- rabbitmq v.3.12.6(5672端口 password: guest,username:guest)、
- nacos2.2.0(8848端口);
还有4个本地的springboot服务(名称分别为:
- yuoj-backend-user-service 8102端口、
- yuoj-backend-question-service 8103端口、
- yuoj-backend-judge-service8104端口、
- yuoj-backend-gateway8101端口),每个服务本地目录都有一个Dockerfile,请帮我自动生成dockercompose的yml配置文件,要求这些服务网络能够连通
梳理服务部署表格
| 服务名称 | 英文名 | 端口号 | 版本号 | 服务类别 | 
|---|---|---|---|---|
| 数据库 | mysql | 3306 | v8 | 环境依赖 | 
| 缓存 | redis | 63791 | v6 | 环境依赖 | 
| 消息队列 | rabbitmq | 5672,15672 | v3.12.6 | 环境依赖 | 
| 注册中心 | nacos | 8848 | v2.2.0 | 环境依赖 | 
| 网关服务 | gateway | 8101 | java8 | 业务服务 | 
| 用户服务 | user-service | 8102 | java8 | 业务服务 | 
- docker-compose
version: '3.3'
services:
  mysql:
    image: 'mysql:8'
    container_name: mysql_service
    restart: always
    ports:
      - '3306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_DATABASE: 'your_database_name' # 可选,初始化数据库名
    volumes:
      - mysql_data:/var/lib/mysql
  redis:
    image: 'redis:6'
    container_name: redis_service
    ports:
      - '6379:6379'
  rabbitmq:
    image: 'rabbitmq:3.12.6-management'
    container_name: rabbitmq_service
    ports:
      - '5672:5672'
      - '15672:15672' # 管理界面端口
    environment:
      RABBITMQ_DEFAULT_USER: 'guest'
      RABBITMQ_DEFAULT_PASS: 'guest'
  nacos:
    image: 'nacos/nacos-server:2.2.0'
    container_name: nacos_service
    ports:
      - '8848:8848'
    environment:
      - MODE=standalone
  yuoj-backend-user-service:
    build: ./yuoj-backend-user-service # 假设这是服务的本地目录
    container_name: user-service
    ports:
      - '8102:8102'
    networks:
      - backend_net
  yuoj-backend-question-service:
    build: ./yuoj-backend-question-service
    container_name: question-service
    ports:
      - '8103:8103'
    networks:
      - backend_net
  yuoj-backend-judge-service:
    build: ./yuoj-backend-judge-service
    container_name: judge-service
    ports:
      - '8104:8104'
    networks:
      - backend_net
  yuoj-backend-gateway:
    build: ./yuoj-backend-gateway
    container_name: gateway-service
    ports:
      - '8101:8101'
    networks:
      - backend_net
volumes:
  mysql_data:
networks:
  backend_net:
    driver: bridge
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
启动数据库 →