雷池社区版compose配置文件解析-mgt

时间:2024-10-29 20:55:33

在现代网络安全中,选择合适的 Web 应用防火墙至关重要。雷池(SafeLine)社区版免费切好用。为网站提供全面的保护,帮助网站抵御各种网络攻击。

compose.yml 文件是 Docker Compose 的核心文件,用于定义和管理多个 Docker 容器。通过这个文件,用户可以用简单的命令启动、停止和管理多个相关的容器。

举例其中mgt配置进行讲解

image.png

mgt 服务的Compose 配置解析

mgt 服务负责管理和协调系统的主要操作,以下是Compose 配置的详细解析。

配置详情

基本设置

  • container_name: safeline-mgt

    • 将容器命名为 safeline-mgt,替代 Docker 默认生成的随机名称,便于后续管理和识别。
  • restart: always

    • 设置容器的重启策略为 always,容器在退出后无论原因都会自动重启,提升服务的高可用性。
  • image: ${IMAGE_PREFIX}/safeline-mgt:${IMAGE_TAG:?image tag required}

    • 指定容器使用的镜像地址,其中 IMAGE_PREFIXIMAGE_TAG 是环境变量。
    • IMAGE_PREFIXIMAGE_TAG 通常定义在 .env 文件中,允许通过参数动态控制镜像的版本和仓库前缀。

卷挂载(volumes)

  • /etc/localtime:/etc/localtime:ro

    • 将主机的 /etc/localtime 文件以只读方式挂载到容器中,保证容器内时区与主机一致。
  • ${SAFELINE_DIR}/resources/mgt:/app/data

    • 持久化 mgt 服务的数据目录,保证数据在容器重启时不会丢失。
  • ${SAFELINE_DIR}/logs/nginx:/app/log/nginx:z

    • 映射容器中的 nginx 日志目录到主机,便于查看和分析日志。
  • ${SAFELINE_DIR}/resources/sock:/app/sock

    • 挂载 sock 文件目录,支持服务间的通信。
  • /var/run:/app/run

    • 映射容器运行所需的本地目录,提供所需的运行环境。

网络和端口(ports)

  • ports: ${MGT_PORT:-9443}:1443
    • 将主机端口映射到容器的 1443 端口,默认使用 9443,如果未在 .env 文件中指定 MGT_PORT,则默认值为 9443

健康检查(healthcheck)

  • test: curl -k -f https://localhost:1443/api/open/health
    • 配置健康检查测试命令,通过向服务的健康检查端点发送 curl 请求来确认服务状态。

环境变量(environment)

  • MGT_PG=postgres://safeline-ce:${POSTGRES_PASSWORD}@safeline-pg/safeline-ce?sslmode=disable
    • 设置 mgt 服务连接到 Postgres 数据库的地址。
    • POSTGRES_PASSWORD 是一个环境变量,通常在 .env 文件中定义。

依赖(depends_on)

  • depends_on:
    • postgres
    • fvm
    • 表示 mgt 服务依赖 postgresfvm 服务,这些服务需要先启动,以确保其运行正常。

日志管理(logging)

  • logging:
    • options:
    • max-size: “100m”
      • 单个日志文件的最大大小为 100MB,当日志文件达到此大小后自动生成新的日志文件。
    • max-file: “5”
      • 设置日志文件的数量上限为 5,超过后最旧的日志文件将被删除,有助于控制日志占用的磁盘空间。

网络配置(networks)

  • networks:
    • safeline-ce:
    • ipv4_address: ${SUBNET_PREFIX}.4
      • 指定 mgt 服务的静态 IP 地址,由 ${SUBNET_PREFIX} 配置子网前缀,.4 为服务的特定 IP 后缀。