-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
83 lines (78 loc) · 2.9 KB
/
Copy pathdocker-compose.yml
File metadata and controls
83 lines (78 loc) · 2.9 KB
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
78
79
80
81
82
83
# 定义所有服务(容器)
services:
# -------------------------------------------
# 后端服务 (ASP.NET Core Web API)
# -------------------------------------------
backend-service:
container_name: oracle-backend-api
build:
# 指向后端 .csproj 和 Dockerfile 所在的实际项目文件夹
context: ./oracle-backend/oracle-backend
dockerfile: Dockerfile
ports:
# 将主机的 8081 端口映射到容器的 8080 端口
# 访问API: http://localhost:8081
- "8081:8080"
environment:
# 强制应用在容器内部监听 8080 端口
- ASPNETCORE_URLS=http://+:8080
# 数据库连接字符串,主机名'oracle-db'必须与下面的数据库服务名一致
- ConnectionStrings__OracleConnection=Data Source=oracle-db:1521/XEPDB1;User Id=ORACLEDBA;Password=23OracleServer;
depends_on:
# 确保在启动此服务前,数据库服务已准备就绪
- oracle-db
networks:
# 将此服务连接到我们定义的应用网络
- app-network
# -------------------------------------------
# 前端服务 (Vue.js + Nginx)
# -------------------------------------------
frontend-service:
container_name: oracle-frontend-vue
build:
# 指向前端 package.json 和 Dockerfile 所在的实际项目文件夹
context: ./oracle-frontend/oracle-frontend
dockerfile: Dockerfile
ports:
# 将主机的 8080 端口映射到容器的 80 端口 (Nginx默认端口)
# 访问应用: http://localhost:8080
- "8080:80"
depends_on:
# 确保在后端API启动后,再启动前端服务
- backend-service
networks:
- app-network
# -------------------------------------------
# 数据库服务 (Oracle Express Edition)
# -------------------------------------------
oracle-db:
# 服务名 'oracle-db',用于在容器间进行内部通信
container_name: oracle-db-instance
image: gvenzl/oracle-xe:latest
ports:
# 将主机的 1521 端口映射到容器的 1521 端口
# 方便使用本地数据库工具 (如DBeaver, SQL Developer) 连接调试
- "1521:1521"
environment:
# 设置数据库的 SYS, SYSTEM 和 PDBADMIN 用户的初始密码
- ORACLE_PASSWORD=23OracleServer
# #镜像自动创建用户
- APP_USER=ORACLEDBA
- APP_USER_PASSWORD=23OracleServer
volumes:
# 将你的初始化脚本映射到Oracle的setup目录
- ./db-init:/container-entrypoint-initdb.d
# 将容器内的数据目录挂载到Docker管理的数据卷'oracle-data'
# 这样即使删除容器,数据库数据也不会丢失
- oracle-data:/opt/oracle/oradata
networks:
- app-network
# 定义网络
networks:
app-network:
# 使用默认的桥接网络驱动
driver: bridge
# 定义数据卷
volumes:
# Docker将自动创建和管理这个名为'oracle-data'的数据卷
oracle-data: