AppName

针对 AppName 应用的 Docker 镜像,用于提供 AppName 服务。

使用说明可参照:官方说明

AppName-logo

版本信息:

  • 1.0、latest

镜像信息:

  • 镜像地址:
    • 华为云: swr.cn-north-4.myhuaweicloud.com/colovu/imgname
    • 阿里云: registry.cn-shenzhen.aliyuncs.com/colovu/imgname
    • 依赖镜像:swr.cn-north-4.myhuaweicloud.com/colovu/debian

后续相关命令行默认使用华为云 SWR 镜像服务器做说明。

快捷命令

Docker 快速启动命令:

# 从 Registry 服务器下载镜像并启动
docker run -e ALLOW_ANONYMOUS=yes --name imgname swr.cn-north-4.myhuaweicloud.com/colovu/imgname:latest
  • latest:为镜像的 TAG,可针对性选择不同的 TAG 进行下载
  • 不指定 TAG 时,默认下载latest镜像

Docker-Compose 快速启动命令:

# 从 Gitee 下载 Compose 文件
curl -sSL -o https://gitee.com/colovu/docker-imgname/raw/master/docker-compose.yml

# 创建并启动容器
docker-compose up -d

默认对外声明

端口

  • 8080:端口用途

数据卷

镜像默认提供以下数据卷定义:

  • /data:工作目录,主要存放应用数据
  • /var/run:系统运行时文件,如 PID 文件

如果需要持久化存储相应数据,需要在宿主机建立本地目录,并在使用镜像初始化容器时进行映射。

容器配置

在初始化 AppName 容器时,主要通过如下的环境变量进行配置。

自动变量替换

针对应用配置文件中的配置项,支持由环境变量名自动替换生成,该类环境变量需要使用统一前缀,定义规则为:APP_CFG_*=<val>

  • APP_CFG_:环境变量自动替换标识,具备该前缀的环境变量会被自动处理并更新至配置文件
  • *:配置文件中对应的配置项名,大小写需要符合实际参数名要求;特殊字符需要符合特殊字符替换规则
  • <val>:配置项对应值

特殊字符替换规则

因为 Shell 变量只能以字母、数字和下划线组成,针对'xml'、'ini'等配置文件中使用的'.'、'-'等特殊字符,需要进行重定义及转换。预定义如下:

  • _ ==> _ : 应用配置属性中的_(下划线),与环境变量相同
  • __ ==> . : 应用配置属性中的.(半角点),在环境变量中由__(双下划线)表示
  • ___ ==> - : 应用配置属性中的-(中划线),在环境变量中由___(三下划线)表示

例如:

# 容器启动时的环境变量
APP_CFG_min_wal_size=100MB
APP_CFG_max_wal_size="400MB"

# 容器启动后,应用配置文件中对应配置项生效,且设置为相应值:
min_wal_size = '100MB'
max_wal_size = '400MB'


# 容器启动时的环境变量
APP_CFG_fs__defaultFS=hdfs://namenode:8020
APP_CFG_yarn__log___aggregation___enable=true

# 容器启动后,应用配置文件中对应配置项生效,且设置为相应值:
  <property><name>fs.defaultFS</name><value>hdfs://namenode:8020</value></property>
  <property><name>yarn.log-aggregation-enable</name><value>true</value></property>

常规配置参数

常规配置参数用来配置容器基本属性,一般情况下需要设置,主要包括:

常规可选参数

如果没有必要,可选配置参数可以不用定义,直接使用对应的默认值,主要包括:

  • ENV_DEBUG:默认值:false。设置是否输出容器调试信息。可选值:false、no、true、yes
  • ALLOW_ANONYMOUS:默认值:no。设置是否允许匿名链接。可选值:false、no、true、yes

集群配置参数

配置服务为集群工作模式时,通过以下参数进行配置:

TLS配置参数

配置服务使用 TLS 加密时,通过以下参数进行配置:

安全

用户及密码

AppName镜像默认禁用了无密码访问功能,在实际生产环境中建议使用用户名及密码控制访问;如果为了测试需要,可以使用以下环境变量启用无密码访问功能:

ALLOW_ANONYMOUS=yes

容器安全

本容器默认使用non-root运行应用,以加强容器的安全性。在使用non-root用户运行容器时,相关的资源访问会受限;应用仅能操作镜像创建时指定的路径及数据。使用non-root方式的容器,更适合在生产环境中使用。

如果需要赋予容器内应用访问外部设备的权限,可以使用以下两种方式:

  • 启动参数增加--privileged=true选项
  • 针对特定权限需要使用--cap-add单独增加特定赋权,如:ALL、NET_ADMIN、NET_RAW

如果需要切换为root方式运行应用,可以在启动命令中增加-u root以指定运行的用户。

注意事项

  • 容器中应用的启动参数不能配置为后台运行,如果应用使用后台方式运行,则容器的启动命令会在运行后自动退出,从而导致容器退出

本文原始来源 Endial Fang @ Gitee.com

S
Description
No description provided
Readme 1.2 MiB
Languages
Shell 71%
Dockerfile 18.8%
Makefile 10.2%