Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add develop.md #77

Merged
merged 6 commits into from
Dec 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,5 @@ coverage.txt
ca-key
*.jks

/log
/log
/node_modules
10 changes: 10 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"trailingComma": "es5",
"bracketSpacing": true,
"arrowParens": "always"
}
38 changes: 19 additions & 19 deletions docs/build.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# Build

该指南将主要介绍项目的构建和启动流程,以及相关的脚本
该指南将主要介绍项目的构建和启动流程,以及相关的脚本

后续的 `<target>` 指代某个服务,例如 `api`,具体可以通过 `make help` 获取可构建服务列表
后续的 `<target>` 指代某个服务,例如 `api`,具体可以通过 `make help` 获取可构建服务列表

## 大致流程

1. 使用命令 `make env-up` 启动环境(MySQL、etcd、Redis 等)
2. `make <target>` 编译并运行具体的服务
3. 服务从 etcd 中获取 `config.yaml`
4. 读取 `config.yaml` 中的配置,将 Env 映射到对应的 **结构体**
5.`config.yaml` 中获取可用地址
6. 初始化服务,将服务注册到 `etcd`
7. 启动服务
1. 使用命令 `make env-up` 启动环境(MySQL、etcd、Redis 等)
2. `make <target>` 编译并运行具体的服务
3. 服务从 etcd 中获取 `config.yaml`
4. 读取 `config.yaml` 中的配置,将 Env 映射到对应的 **结构体**
5.`config.yaml` 中获取可用地址
6. 初始化服务,将服务注册到 `etcd`
7. 启动服务

```mermaid
sequenceDiagram
Expand Down Expand Up @@ -40,19 +40,19 @@ sequenceDiagram

### 目录结构

项目的关键目录如下
项目的关键目录如下

- `cmd/`:包含各服务模块的启动入口
- `output/`:构建产物的输出目录
- `cmd/`:包含各服务模块的启动入口
- `output/`:构建产物的输出目录

### 构建流程

此处阐述当我们敲下 `make <target>` 时具体的工作流程,我们省略了 tmux 环境的相关内容
此处阐述当我们敲下 `make <target>` 时具体的工作流程,我们省略了 tmux 环境的相关内容

构建过程主要通过 [build.sh](../docker/script/build.sh) 脚本完成,用于编译指定服务模块的二进制文件或进行系统测试
构建过程主要通过 [build.sh](../docker/script/build.sh) 脚本完成,用于编译指定服务模块的二进制文件或进行系统测试

1. 进入到 cmd 中的对应服务文件夹下
2. 执行 `go build` 以编译该服务的二进制文件,并存放到 `output` 文件夹内
1. 进入到 cmd 中的对应服务文件夹下
2. 执行 `go build` 以编译该服务的二进制文件,并存放到 `output` 文件夹内

```mermaid
flowchart TD
Expand Down Expand Up @@ -81,14 +81,14 @@ flowchart TD

### 启动流程

当我们敲下 `make <target>` 而没有设置仅构建标志(`BUILD_ONLY`)时,会自动启动,这里介绍本地调试启动的过程
当我们敲下 `make <target>` 而没有设置仅构建标志(`BUILD_ONLY`)时,会自动启动,这里介绍本地调试启动的过程

> Docker 容器的启动过程是类似的,只是将其移动至容器内
启动过程主要通过 [entrypoint.sh](/docker/script/entrypoint.sh) 脚本完成

1. 通过`export`设置 etcd 的地址的环境变量,为后续程序在 **运行时** 能够获取到 etcd 的地址并获取 `config.yaml`
2. `cd` 到构建阶段生成的 output 目录,执行对应服务的二进制文件
1. 通过`export`设置 etcd 的地址的环境变量,为后续程序在 **运行时** 能够获取到 etcd 的地址并获取 `config.yaml`
2. `cd` 到构建阶段生成的 output 目录,执行对应服务的二进制文件

```mermaid
flowchart TD
Expand Down
6 changes: 3 additions & 3 deletions docs/deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ rsync -avz ./docker/docker-compose.yml <user>@<servier ip>:~/
# rsync -avz src <user>@<server>:~/
```

完成后的目录结构应该与下面的结构类似
完成后的目录结构应该与下面的结构类似

```shell
.
Expand All @@ -129,13 +129,13 @@ rsync -avz ./docker/docker-compose.yml <user>@<servier ip>:~/

### 启动容器

启动 `<target>` 服务容器
启动 `<target>` 服务容器

```shell
bash ./hack/docker-run.sh <target>
```

- `docker-run.sh` 脚本会先主动拉取最新的镜像,然后再启动容器
- `docker-run.sh` 脚本会先主动拉取最新的镜像,然后再启动容器

### 大致的流程图

Expand Down
Loading
Loading