docs: 更新说明文档有关变量替换描述
This commit is contained in:
@@ -69,11 +69,11 @@ $ docker-compose -f docker-compose-cluster.yml up -d
|
||||
镜像默认提供以下数据卷定义,默认数据分别存储在自动生成的应用名对应`redis`子目录中:
|
||||
|
||||
```shell
|
||||
/srv/data # Redis 数据文件,主要存放Redis持久化数据;自动创建子目录redis
|
||||
/srv/datalog # Redis 数据操作日志文件;自动创建子目录redis
|
||||
/srv/conf # Redis 配置文件;自动创建子目录redis
|
||||
/var/log # 日志文件,日志文件名为:redis.log
|
||||
/var/run # 进程运行PID文件,PID文件名为:redis_6379.pid、redis_sentinel.pid
|
||||
/srv/redis/data # Redis 数据文件,主要存放 Redis 持久化数据
|
||||
/srv/redis/conf # Redis 配置文件
|
||||
/srv/redis/cert # TLS 通讯证书文件
|
||||
/srv/redis/log # 日志文件,日志文件名为:redis.log
|
||||
/var/run/redis # 进程运行 PID 文件,PID 文件名为:redis.pid、redis_sentinel.pid
|
||||
```
|
||||
|
||||
如果需要持久化存储相应数据,需要**在宿主机建立本地目录**,并在使用镜像初始化容器时进行映射。宿主机相关的目录中如果不存在对应应用 Redis 的子目录或相应数据文件,则容器会在初始化时创建相应目录及文件。
|
||||
@@ -83,26 +83,54 @@ $ docker-compose -f docker-compose-cluster.yml up -d
|
||||
在初始化 Redis 容器时,如果没有预置配置文件,可以在命令行中设置相应环境变量对默认参数进行修改。类似命令如下:
|
||||
|
||||
```shell
|
||||
$ docker run -d -e "APP_ENV_KEY_NAME=key_value" registry.cn-shenzhen.aliyuncs.com/colovu/redis:latest
|
||||
$ docker run -d -e "REDIS_CFG_KEYNAME=key_value" registry.cn-shenzhen.aliyuncs.com/colovu/redis:latest
|
||||
```
|
||||
|
||||
### 自动变量替换
|
||||
|
||||
针对应用配置文件中的配置项,支持由环境变量名自动替换生成,该类环境变量需要使用统一前缀,定义规则为:`REDIS_CFG_*=<val>`
|
||||
|
||||
- `REDIS_CFG_`:环境变量自动替换标识,具备该前缀的环境变量会被自动处理并更新至配置文件
|
||||
- `*`:配置文件中对应的配置项名,大小写需要符合实际参数名要求;特殊字符需要符合`特殊字符替换规则`
|
||||
- `<val>`:配置项对应值
|
||||
|
||||
**特殊字符替换规则**:
|
||||
|
||||
因为 Shell 变量只能以字母、数字和下划线组成,针对'xml'、'ini'等配置文件中使用的'.'、'-'等特殊字符,需要进行重定义及转换。预定义如下:
|
||||
|
||||
+ "_" ==> "-" : 应用配置属性中的`-`(中划线),与环境变量中由`_`(单下划线)表示
|
||||
+ "__" ==> "_" : 应用配置属性中的`_`(下划线),在环境变量中由`__`(双下划线)表示
|
||||
+ "___" ==> "." : 应用配置属性中的`.`(半角点),在环境变量中由`___`(三下划线)表示
|
||||
|
||||
例如:
|
||||
|
||||
```shell
|
||||
# 用于`key-value`类型的配置
|
||||
REDIS_CFG_REQUIREPASS=colovu123
|
||||
REDIS_CFG_APPENDONLY=no
|
||||
|
||||
# 容器启动后,应用配置文件中对应配置项生效,且设置为相应值:
|
||||
requirepass colovu123
|
||||
appendonly no
|
||||
```
|
||||
|
||||
### 常规配置参数
|
||||
|
||||
常使用的环境变量主要包括:
|
||||
|
||||
- **ALLOW_ANONYMOUS**:默认值:**no**。设置是否允许无密码连接。如果没有设置`REDIS_PASSWORD`,则必须设置当前环境变量为 `yes`
|
||||
- **REDIS_PASSWORD**:默认值:**无**。客户端认证的密码
|
||||
- **REDIS_DISABLE_COMMANDS**:默认值:**无**。设置禁用的 Redis 命令
|
||||
- **REDIS_AOF_ENABLED**:默认值:**yes**。设置是否启用 Append Only File 存储
|
||||
- **ALLOW_ANONYMOUS**:默认值:**no**。设置是否允许无密码连接。如果没有设置`REDIS_CFG_REQUIREPASS`,则必须设置当前环境变量为 `yes`
|
||||
- **REDIS_CFG_REQUIREPASS**:默认值:**无**。客户端认证的密码
|
||||
- **REDIS_CFG_APPENDONLY**:默认值:**no**。设置是否启用 Append Only File 存储
|
||||
|
||||
### 可选配置参数
|
||||
### 常规可选参数
|
||||
|
||||
如果没有必要,可选配置参数可以不用定义,直接使用对应的默认值,主要包括:
|
||||
|
||||
- **ENV_DEBUG**:默认值:**false**。设置是否输出容器调试信息。可设置为:1、true、yes
|
||||
- **REDIS_PORT**:默认值:**6379**。设置应用的默认客户访问端口
|
||||
- **REDIS_PASSWORD_FILE**:默认值:**无**。以绝对地址指定的客户端认证用户密码存储文件。该路径指的是容器内的路径
|
||||
- **REDIS_MASTER_PASSWORD_FILE**:默认值:**无**。以绝对地址指定的服务器密码存储文件。该路径指的是容器内的路径
|
||||
- `ENV_DEBUG`:默认值:**false**。设置是否输出容器调试信息。可选值:false、no、true、yes
|
||||
- **DISABLE_COMMANDS**:默认值:**无**。设置禁用的 Redis 命令
|
||||
- **PASSWORD_FILE**:默认值:**无**。以绝对地址指定的客户端认证用户密码存储文件。该路径指的是容器内的路径
|
||||
- **MASTER_PASSWORD_FILE**:默认值:**无**。以绝对地址指定的服务器密码存储文件。该路径指的是容器内的路径
|
||||
- **REDIS_CFG_PORT**:默认值:**6379**。设置应用的默认客户访问端口
|
||||
|
||||
### Sentinel配置参数
|
||||
|
||||
@@ -110,28 +138,17 @@ $ docker run -d -e "APP_ENV_KEY_NAME=key_value" registry.cn-shenzhen.aliyuncs.co
|
||||
- **REDIS_SENTINEL_MASTER_NAME**:默认值:**无**
|
||||
- **REDIS_SENTINEL_PORT_NUMBER**:默认值:**26379**。设置 Sentinel 默认端口
|
||||
|
||||
### 集群配置参数
|
||||
|
||||
使用 Redis 镜像,可以很容易的建立一个 [redis](https://redis.apache.org/doc/r3.1.2/redisAdmin.html) 集群。针对 redis 的集群模式(复制模式),有以下参数可以配置:
|
||||
|
||||
- **REDIS_REPLICATION_MOD**:默认值:**无**。当前主机在集群中的工作模式,可使用值为:`master`/`slave`/`replica`
|
||||
- **REDIS_MASTER_HOST**:默认值:**无**。作为`slave`/`replica`时,对应的 master 主机名或 IP 地址
|
||||
- **REDIS_MASTER_PORT_NUMBER**:默认值:**6379**。master 主机对应的端口
|
||||
- **REDIS_MASTER_PASSWORD**:默认值:**无**。master 主机对应的登录验证密码
|
||||
|
||||
### TLS配置参数
|
||||
|
||||
使用证书加密传输时,相关配置参数如下:
|
||||
|
||||
- **REDIS_TLS_ENABLED**:启用或禁用 TLS。默认值:**no**
|
||||
- **REDIS_TLS_PORT**:使用 TLS 加密传输的端口。默认值:**6379**
|
||||
- **REDIS_TLS_CERT_FILE**:TLS 证书文件。默认值:**无**
|
||||
- **REDIS_TLS_KEY_FILE**:TLS 私钥文件。默认值:**无**
|
||||
- **REDIS_TLS_CA_FILE**:TLS 根证书文件。默认值:**无**
|
||||
- **REDIS_TLS_DH_PARAMS_FILE**:包含 DH 参数的配置文件 (DH 加密方式时需要)。默认值:**无**
|
||||
- **REDIS_TLS_AUTH_CLIENTS**:配置客户端是否需要 TLS 认证。 默认值:**yes**
|
||||
- **REDIS_CFG_TLS_PORT**:使用 TLS 加密传输的端口。默认值:**6379**
|
||||
- **REDIS_CFG_TLS_CERT_FILE**:TLS 证书文件。默认值:**无**
|
||||
- **REDIS_CFG_TLS_KEY_FILE**:TLS 私钥文件。默认值:**无**
|
||||
- **REDIS_CFG_TLS_CA_CERT_FILE**:TLS 根证书文件。默认值:**无**
|
||||
- **REDIS_CFG_TLS_AUTH_CLIENTS**:配置客户端是否需要 TLS 认证。 默认值:**no**
|
||||
|
||||
当使用 TLS 时,则默认的 non-TLS 通讯被禁用。如果需要同时支持 TLS 与 non-TLS 通讯,可以使用参数`REDIS_TLS_PORT`配置容器使用不同的 TLS 端口。
|
||||
当使用 TLS 时,则默认的 non-TLS 通讯被禁用。如果需要同时支持 TLS 与 non-TLS 通讯,可以使用参数`REDIS_CFG_TLS_PORT`配置容器使用不同的 TLS 端口。
|
||||
|
||||
## 安全
|
||||
|
||||
@@ -156,7 +173,7 @@ services:
|
||||
redis:
|
||||
...
|
||||
environment:
|
||||
- REDIS_PASSWORD=colovu
|
||||
- REDIS_CFG_REQUIREPASS=colovu
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user