Skip to content

Commit 3bb75b3

Browse files
authored
Update README_ZH.md
1 parent 750ed0a commit 3bb75b3

File tree

1 file changed

+318
-18
lines changed

1 file changed

+318
-18
lines changed

docker/README_ZH.md

+318-18
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,326 @@
44
EAIRP包含物料采购、财务预算、库存管理、账单管理、用户角色组织管理等多项功能,并引入先进的AI助手,为企业提供智能管理解决方案。
55

66
# 目录
7-
- [介绍](#introduction)
8-
- [如何使用 Eairp Image](#how-to-use-this-image)
9-
- [拉取现有的镜像](#pulling-an-existing-image)
10-
- [使用 docker run](#using-docker-run)
11-
- [使用 docker-compose](#using-docker-compose)
12-
- [构建](#building)
13-
- [升级 Eairp](#upgrading-eairp)
14-
- [故障排除](#troubleshooting)
15-
- [Eairp Image 详细信息](#details-for-the-eairp-image)
16-
- [配置选项](#configuration-options)
17-
- [配置文件](#configuration-files)
18-
- [其他](#miscellaneous)
19-
- [执照](#license)
20-
- [支持](#support)
21-
- [贡献](#contribute)
22-
- [致谢](#credits)
23-
24-
# Introduction
7+
- [简介](#简介)
8+
- [镜像使用指南](#镜像使用指南)
9+
- [拉取现有的镜像](#拉取现有的镜像)
10+
- [使用docker run](#使用docker run)
11+
- [使用docker-compose](#使用docker-compose)
12+
- [构建镜像](#构建镜像)
13+
- [升级Eairp](#升级Eairp)
14+
- [故障排查](#故障排查)
15+
- [镜像细节说明](#镜像细节说明)
16+
- [配置选项](#配置选项)
17+
- [配置文件](#配置文件)
18+
- [其他说明](#其他说明)
19+
- [许可证](#许可证)
20+
- [支持](#支持)
21+
- [贡献指南](#贡献指南)
22+
- [致谢](#致谢)
23+
24+
# 简介
2525

2626
目标是提供在 Docker 中运行的可用于生产的 Eairp 系统。原因如下:
2727

2828
- 该操作系统基于 Debian,而不是基于一些占用空间较小的发行版,如 Alpine
2929
- Docker Compose 使用了多个容器:一个用于 mysql,一个用于 Redis,另一个用于 Eairp + Nginx。这样就可以在不同的机器上运行它们。
30+
31+
# 镜像使用指南
32+
33+
请先安装 [Docker](https://www.docker.com/) 随后可选择:
34+
35+
1. 从DockerHub拉取现成镜像。
36+
2. 下载[项目源码](https://github.com/wansenai/eairp)自行构建。
37+
38+
## 拉取现有的镜像
39+
40+
需运行三个容器:
41+
42+
- Eairp主应用容器
43+
- MySQL数据库容器
44+
- Redis数据库容器
45+
46+
### 使用docker run
47+
48+
首先创建一个专用的docker网络:
49+
50+
```console
51+
docker network create -d bridge eairp-nw
52+
```
53+
然后为MySQL数据库运行一个容器,并确保其配置为使用UTF8编码。
54+
55+
#### 启动MySQL
56+
57+
我们将使用的本地目录挂载MySQL容器的配置文件:
58+
- 一个用于在数据库初始化时设置权限(见下文),
59+
- 另一个是将Eairp放在MySQL数据库中的数据包含在内,这样当你停止并重新启动MySQL时,你就不会发现自己没有任何数据。
60+
61+
例如:
62+
- `/usr/local/mysql-init`
63+
- `/usr/local/mysql`
64+
65+
您需要确保这些目录存在,然后将`eairp.sql`文件复制到`/usr/local/mysql-int`目录。(您可以根据需要重新命名它,例如`init.sql `)。
66+
67+
注意:确保您挂载到容器中的目录是绝对路径,而不是相对路径。
68+
69+
```console
70+
docker run --net=eairp-nw \
71+
-d \
72+
--name mysql-eairp \
73+
-p 3306:3306 \
74+
-v /usr/local/mysql:/var/lib/mysql \
75+
-v /usr/local/mysql-init:/docker-entrypoint-initdb.d \
76+
-e MYSQL_ROOT_PASSWORD=123456 \
77+
-e MYSQL_USER=eairp \
78+
-e MYSQL_PASSWORD=123456 \
79+
-e MYSQL_DATABASE=eairp \
80+
mysql:8.3 \
81+
--character-set-server=utf8mb4 \
82+
--collation-server=utf8mb4_bin \
83+
--explicit-defaults-for-timestamp=1
84+
```
85+
86+
```console
87+
docker run --net=eairp-nw -d --name mysql-eairp -p 3306:3306 -v /usr/local/mysql:/var/lib/mysql -v /usr/local/mysql-init:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_USER=eairp -e MYSQL_PASSWORD=123456 -e MYSQL_DATABASE=eairp -d mysql:8.3 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin --explicit-defaults-for-timestamp=1
88+
```
89+
90+
您应该根据本地MySQL数据库密码,修改命令 `MYSQL_PASSWORD` 参数。
91+
92+
#### 启动Redis
93+
94+
我们还需要使用的本地目录挂载Redis容器的配置文件:
95+
96+
- `/usr/local/redis/data`
97+
- `/usr/local/redis/redis.conf`
98+
99+
在继续之前,您需要确保此目录存在。
100+
101+
注意:确保您挂载到容器中的目录是绝对路径,而不是相对路径。
102+
103+
```console
104+
docker run --net=eairp-nw \
105+
-d \
106+
--name redis-eairp \
107+
-p 6379:6379 \
108+
-v /usr/local/redis/redis.conf:/etc/redis/redis.conf \
109+
-v /usr/local/redis/data:/data \
110+
-e SPRING_REDIS_PASSWORD=123456
111+
redis:latest
112+
```
113+
114+
```console
115+
docker run --net=eairp-nw -d --name redis-eairp -v /usr/local/redis/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data -p 6379:6379 redis:latest
116+
```
117+
118+
您应该根据本地Redis数据库密码,修改命令 `SPRING_REDIS_PASSWORD` 参数,如果没有就不用传递该环境变量。
119+
120+
#### 启动Eairp
121+
122+
我们还将为Eairp日志(包含应用程序配置和状态)绑定挂载一个本地目录,例如:
123+
124+
- `/usr/local/eairp`
125+
126+
注意:确保您挂载到容器中的目录是绝对路径,而不是相对路径。
127+
128+
确保此目录存在,然后通过运行以下命令之一在容器中运行Eairp。
129+
130+
```console
131+
docker run --net=eairp-nw \
132+
-d \
133+
--name eairp \
134+
-p 8088:8088 \
135+
-p 3000:80 \
136+
-v /usr/local/eairp:/application/log \
137+
-e SPRING_DATASOURCE_URL=jdbc:mysql://mysql-eairp:3306/eairp \
138+
-e SPRING_DATASOURCE_USERNAME=eairp \
139+
-e SPRING_DATASOURCE_PASSWORD=123456 \
140+
-e SPRING_REDIS_HOST=redis-eairp \
141+
-e SPRING_REDIS_PORT=6379 \
142+
-e SPRING_REDIS_PASSWORD=123456 \
143+
-e API_BASE_URL=http://localhost:8088/erp-api \
144+
wansenai/eairp:latest
145+
```
146+
147+
```console
148+
docker run --net=eairp-nw -d --name eairp -p 8088:8088 -p 3000:80 -v /usr/local/eairp:/application/log -e SPRING_DATASOURCE_URL=jdbc:mysql://mysql-eairp:3306/eairp -e SPRING_DATASOURCE_USERNAME=eairp -e SPRING_DATASOURCE_PASSWORD=123456 -e SPRING_REDIS_HOST=redis-eairp -e SPRING_REDIS_PORT=6379 -e SPRING_REDIS_PASSWORD=123456 -e API_BASE_URL=https://eairp.cn/erp-api wansenai/eairp:latest
149+
```
150+
151+
注意:Eairp在 `Spring Boot` 中使用 `Spring DataSource` 作为连接到数据库的数据源。
152+
153+
请不要忘记使用之前创建的MySQL容器和Redis容器的名称添加MySQL数据库连接环境变量(`SPRING_DATASOURCE_URL`)和Redis数据库连接环境参数(`SPRING_REDIS_HOST `),以便Eairp知道其数据库的位置。
154+
155+
如果要在服务器上部署,请修改 `API_BASE_URL` 环境变量的值,例如:
156+
- `http://eairp.cn/erp-api`
157+
- `https://eairp.cn/erp-api`
158+
159+
### 使用docker-compose
160+
161+
另一种解决方案是使用我们提供的Docker Compose文件。
162+
163+
首先,您需要下载[eairp源代码](https://github.com/eairps/eairp/releases)到您的本地计算机,然后您必须从[docker](https://github.com/eairps/eairp/tree/master/docker)文件夹下载5个文件,它们是:
164+
165+
- `.env`
166+
- `Dockerfile`
167+
- `docker-compose.yaml`
168+
- `start.sh`
169+
- `mysql-scripts/eairp.sql`
170+
171+
然后将这四个文件和 `mysql-scripts` 文件夹复制到Eairp源代码目录结构中,注意 `mysql-scscripts` 是一个文件夹。您需要复制整个文件夹,而不仅仅是其中的sql文件。
172+
173+
完整的目录结构如下:
174+
175+
```markdown
176+
eairp/
177+
├── core/
178+
├── desktop/
179+
├── docs/
180+
├── images/
181+
├── web/
182+
├── mysql-scripts/
183+
│ ├── eairp.sql
184+
185+
└── .env
186+
└── docker-compose.yaml
187+
└── Dockerfile
188+
└── start.sh
189+
```
190+
191+
作为参考,这里有一个最小的Docker Compose文件,您可以将其用作示例(完整示例再[此处](https://github.com/eairps/eairp/tree/master/docker/latest/docker-compose.yaml)):
192+
193+
```yaml
194+
version: '3.8'
195+
networks:
196+
bridge:
197+
driver: bridge
198+
services:
199+
eairp:
200+
image: wansenai/eairp:latest
201+
container_name: eairp
202+
ports:
203+
- "3000:80"
204+
- "8088:8088"
205+
environment:
206+
SPRING_DATASOURCE_URL: "${SPRING_DATASOURCE_URL}"
207+
SPRING_DATASOURCE_USERNAME: "${SPRING_DATASOURCE_USERNAME}"
208+
SPRING_DATASOURCE_PASSWORD: "${SPRING_DATASOURCE_PASSWORD}"
209+
SPRING_REDIS_HOST: "${SPRING_REDIS_HOST}"
210+
SPRING_REDIS_PORT: "${SPRING_REDIS_PORT}"
211+
SPRING_REDIS_PASSWORD: "${SPRING_REDIS_PASSWORD}"
212+
SPRING_PROFILE: "docker"
213+
depends_on:
214+
- mysql
215+
- redis
216+
networks:
217+
- bridge
218+
219+
mysql:
220+
image: mysql:8.0
221+
container_name: mysql
222+
environment:
223+
MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"
224+
MYSQL_DATABASE: "eairp"
225+
MYSQL_USER: "${MYSQL_USER}"
226+
MYSQL_PASSWORD: "${MYSQL_PASSWORD}"
227+
command:
228+
- "--character-set-server=utf8mb4"
229+
- "--collation-server=utf8mb4_bin"
230+
- "--explicit-defaults-for-timestamp=1"
231+
ports:
232+
- "3306:3306"
233+
volumes:
234+
- mysql-data:/var/lib/mysql
235+
- ./mysql-scripts:/docker-entrypoint-initdb.d
236+
cap_add:
237+
- SYS_NICE
238+
networks:
239+
- bridge
240+
241+
redis:
242+
image: redis:7.0
243+
container_name: redis
244+
command: redis-server --requirepass 123456
245+
ports:
246+
- "6379:6379"
247+
volumes:
248+
- redis-data:/data
249+
networks:
250+
- bridge
251+
252+
volumes:
253+
mysql-data:
254+
redis-data:
255+
```
256+
257+
## 构建镜像
258+
259+
这允许您在本地重建 `Eairp-docker` 映像。以下是步骤:
260+
- ```shell
261+
docker-compose up
262+
```
263+
- 启动浏览器并将其指向`http://localhost:3000`
264+
265+
请注意,`docker-compose up` 将在第一次运行时自动构建Eairp映像。如果你需要重新构建,你可以运行 `docker compose up--build`。您还可以使用 `docker build . -t eairp:latest` 例如最新的版本。
266+
267+
你也可以通过运行 `docker build -t eairp` 来构建镜像然后使用上面的命令启动Eairp,并使用`docker run ...`
268+
269+
# 升级Eairp
270+
271+
您已经安装了Eairp docker镜像并使用了它,现在是您想将Eairp升级到较新版本的时候了。
272+
273+
如果您遵循了上述说明,则已将Eairp本地目录映射到主机上。
274+
275+
升级所需做的就是停止正在运行的Eairp容器,并启动要升级到的新版本。您应该保持Mysql容器和Redis容器运行。
276+
277+
请注意,您当前的Eairp配置文件(`start.sh`、`.env` 和 `application.yml`)将被保留。
278+
279+
您应该始终查看[发行说明](https://github.com/wansenai/eairp/releases)对于当前版本和要升级到的新版本之间发生的所有变化,可能需要执行一些手动步骤(例如更新Eairp配置文件)。
280+
281+
# 镜像细节说明
282+
283+
## 配置选项
284+
285+
第一次从Eairp映像创建容器时,会在容器中执行一个shell脚本(`/usr/local/bin/docker-entrypoint.sh`)来设置一些配置。可以传递以下环境变量:
286+
287+
- `SPRING_DATASOURCE_URL`: 用于连接Mysql数据库的JDBC地址,默认端口为3306。
288+
- `SPRING_DATASOURCE_USERNAME`: 用于连接MySQL数据库的用户名
289+
- `SPRING_DATASOURCE_PASSWORD`: 连接MySQL数据库的密码
290+
- `SPRING_REDIS_HOST`: Eairp用于连接Redis数据库的主机地址
291+
- `SPRING_REDIS_PORT`: Redis数据库的端口,默认为6379。
292+
- `SPRING_REDIS_PASSWORD`: 连接Redis数据库的密码
293+
- `API_BASE_URL`: 用于前端访问后端API地址,可以设置域名或服务器IP,默认为*http://localhost:8088/erp-api*.
294+
295+
如果你需要执行一些高级配置,你可以通过运行以下命令在正在运行的Eairp容器内获得一个shell(但请注意,如果你删除容器,这些命令将不会被保存):
296+
297+
```console
298+
docker exec -it <eairp container id> bash -l
299+
```
300+
301+
## 配置文件
302+
303+
您可能需要修改Eairp的4个重要配置文件:
304+
- `.env`
305+
- `start.sh`
306+
- `Dockerfile`
307+
- `docker-compose.yaml`
308+
309+
## 其他说明
310+
暂时没有
311+
312+
# 许可证
313+
314+
Eairp使用 [Apache-2.0](https://github.com/eairps/eairp/blob/master/LICENSE-APACHE) 和 [MIT](https://github.com/eairps/eairp/blob/master/LICENSE-MIT) 许可。
315+
316+
# 支持
317+
318+
- 如果你想提出一个问题或改进的想法,请打开一个[Issues](https://github.com/eairps/eairp/issues)。
319+
- 如果您有任何疑问,请使用[Eairp Discussions](https://github.com/eairps/eairp/discussions)。
320+
321+
# 贡献指南
322+
323+
- 如果你想在代码方面提供帮助,请在[Eairp](https://github.com/eairps/eairp)上发送Pull Requests。
324+
- 请注意,更改需要合并到所有其他有意义的分支中,如果它们对现有标记有意义,则必须删除并重新创建这些标记。
325+
- 此外,每当修改分支或标签时,[Eairp DockerHub官方镜像](https://hub.docker.com/repository/docker/wansenai/eairp/general)上都会显示Pull Request.
326+
327+
# 致谢
328+
329+
- 最初由 [James Zow](https://github.com/Jzow) 创建。

0 commit comments

Comments
 (0)