跳转至

Docker 安装

本章介绍如何通过 Docker 运行 BFE。

方式一:直接运行已有镜像

如果你已经有可用镜像(例如 ghcr.io/bfenetworks/bfe,或你自己构建并推送到私有仓库的镜像),可以直接运行:

docker run --rm \
    -p 8080:8080 -p 8443:8443 -p 8421:8421 \
    <your-image>

示例:

docker run --rm \
  -p 8080:8080 -p 8443:8443 -p 8421:8421 \
  ghcr.io/bfenetworks/bfe:latest

你可以访问: - http://127.0.0.1:8080/ (如果配置未命中,可能返回 500) - http://127.0.0.1:8421/monitor (监控信息)

方式二:从源码构建镜像(推荐)

在仓库根目录执行:

# 一次构建 prod + debug 两个镜像
make docker

# 可选:指定镜像名(默认 bfe)
make docker BFE_IMAGE_NAME=bfe

说明: - 镜像 tag 来自仓库根目录的 VERSION 文件,并会被规范化为以 v 开头(例如 1.8.0 会变成 v1.8.0)。 - make docker 是本地构建,不依赖 buildx。

构建后的镜像标签(以 VERSION=1.8.0 为例): - bfe:v1.8.0(prod) - bfe:v1.8.0-debug(debug) - bfe:latest(始终指向 prod)

方式三:构建并推送镜像到仓库(make docker-push)

当你需要将镜像提供给 Kubernetes 集群(或其它机器)拉取时,推荐使用 make docker-push 构建并推送多架构镜像(默认 linux/amd64,linux/arm64)。

前提条件: - 你有可用的镜像仓库(例如 GHCR、Harbor、Docker Hub 等) - 已完成 docker login <registry> - 本地 Docker 支持 buildx(Docker Desktop 通常默认支持)

常用参数: - REGISTRY:必填,镜像仓库前缀(如 ghcr.io/your-org) - BFE_IMAGE_NAME:镜像名(默认 bfe,也可以是带路径的 team/bfe) - PLATFORMS:构建平台(默认 linux/amd64,linux/arm64

示例:推送到 GHCR(得到 ghcr.io/cc14514/bfe:<tag>):

make docker-push REGISTRY=ghcr.io/cc14514 

示例:推送到私有仓库并限制平台(只构建 amd64):

make docker-push \
    REGISTRY=registry.example.com \
    BFE_IMAGE_NAME=infra/bfe \
    PLATFORMS=linux/amd64

推送完成后镜像示例(以 VERSION=1.8.0 为例): - $(REGISTRY)/$(BFE_IMAGE_NAME):v1.8.0(prod,多架构) - $(REGISTRY)/$(BFE_IMAGE_NAME):v1.8.0-debug(debug,多架构) - $(REGISTRY)/$(BFE_IMAGE_NAME):latest(prod,多架构)

如果你要用 Kubernetes 示例部署并使用你推送的镜像:请到 examples/kubernetes/kustomization.yamlimages: 中替换 bfe 镜像的 newName / newTag

自定义配置(挂载本地目录)

镜像内目录约定: - BFE 配置目录:/home/work/bfe/conf - BFE 日志目录:/home/work/bfe/log - conf-agent 配置目录:/home/work/conf-agent/conf - conf-agent 日志目录:/home/work/conf-agent/log

示例:挂载你本地准备好的配置与日志目录(按需修改路径):

# 事先准备好你自己的配置:
#   - /Users/BFE/Desktop/conf/         (BFE 配置目录)
#   - /Users/BFE/Desktop/conf-agent/   (conf-agent 配置目录,里面放 conf-agent.toml)
#   - /Users/BFE/Desktop/log/          (BFE 日志目录)

docker run --rm \
    -p 8080:8080 -p 8443:8443 -p 8421:8421 \
    -v /Users/BFE/Desktop/conf:/home/work/bfe/conf \
    -v /Users/BFE/Desktop/log:/home/work/bfe/log \
    -v /Users/BFE/Desktop/conf-agent:/home/work/conf-agent/conf \
    bfe:latest

下一步