尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Infisical 密钥管理部署实操:Docker Compose 三步起服务,从容器到密钥注入全打通

Infisical 密钥管理部署实操:Docker Compose 三步起服务,从容器到密钥注入全打通 Infisical 密钥管理部署实操Docker Compose 三步起服务从容器到密钥注入全打通【免费下载链接】infisicalInfisical is the open-source platform for secrets, certificates, and privileged access management.项目地址: https://gitcode.com/GitHub_Trending/in/infisical把散落在配置文件、聊天记录和 CI 流水线里的密钥统一收进一个平台还要自己掌控数据和网络边界——这是 Infisical 想解决的问题。它是一款开源的密钥、证书与特权访问管理平台内置版本控制、自动轮换和防泄露扫描用 Docker Compose 起一套自托管实例通常只需要几分钟装好 Docker 就能跑无需额外依赖。下面按「准备环境 → 起服务 → 验证 → 把密钥接进应用」的顺序走一遍全程只涉及几条命令和一份环境变量文件。一、动手之前三个前置条件条件说明检查方式Docker Engine Docker Compose部署依赖容器编排Compose 负责一次拉起多个服务docker compose version80 端口可用生产编排文件把宿主机 80 端口映射到服务被占用会启动失败ss -ltn \| grep :80一块能持久化的磁盘PostgreSQL 和 Redis 各挂一个命名卷数据落在本机默认即可无需配置拿到仓库代码。两种方式任选git clone https://gitcode.com/GitHub_Trending/in/infisical cd infisical或者直接在本机找一个已有的仓库目录。注意自托管部署走的是 docker-compose.prod.yml它会拉取官方打包镜像infisical/infisical:latest不需要你在本地编译 backend 或 frontend 源码省掉了一大堆构建步骤。二、配置 .env整个部署里唯一要动手的部分仓库自带的 .env.example 是一份带默认值的模板先把它复制出来cp .env.example .env编排文件通过env_file: .env读取它所以这一步不能省。翻一下这份文件真正决定实例能不能跑起来的核心变量只有几项ENCRYPTION_KEY平台加解密密钥必须保留一个 64 位十六进制值示例值仅限本地试验生产环境请自行生成替换AUTH_SECRET签发登录 JWT 用的密钥同上POSTGRES_USER / POSTGRES_PASSWORD / POSTGRES_DB数据库凭据模板默认都是infisical可照用DB_CONNECTION_URI模板里已写死为postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}db:5432/${POSTGRES_DB}指向编排网络内的db容器不用改SITE_URL访问地址模板默认http://localhost:8080SMTP 相关留空即可实例能正常登录只是站内通知发不出去其他如 GitHub/GitLab 集成、Sentry 监控等变量都按需填写本地跑通全部留空没有任何问题。三、一键启动一条命令拉起三件套docker compose -f docker-compose.prod.yml up命令执行后Compose 会同时启动三个容器infisical-backend主服务Web 界面和 API 都由它提供对外只暴露 80 端口infisical-dbpostgres:14-alpine存密钥元数据和账号信息挂了pg_isready健康检查编排文件里 backend 会等它报告 healthy 才启动infisical-dev-redisRedis承担缓存与队列配了ALLOW_EMPTY_PASSWORDyes用于内网互通首次运行要拉取镜像耗时取决于网络之后看到infisical-backend | listening之类的日志输出说明后端已经就绪。四、三分钟确认部署成功浏览器访问http://localhost:80首次进入是注册引导页——创建管理员账号随后按提示初始化组织和第一个项目。能走到这一步数据库初始化、前端静态资源、后端 API 三个环节就全部打通了。回到终端用docker compose -f docker-compose.prod.yml ps看一眼状态backend 应为runningdb 应为running (healthy)。有东西不对劲时docker compose -f docker-compose.prod.yml logs -f backend看实时日志八成能直接定位到原因。五、从控制台到容器给应用接上密钥5.1 在控制台建好第一个密钥登录后点New Project建一个项目比如my-first-project选定环境development / production 等然后Add Secret填入DB_PASSWORD和对应值保存。接下来在项目的 Token 入口创建一个作用域限定在该环境的 Token——它就是应用访问密钥的门禁卡泄露风险远低于直接分发密钥本身。5.2 用 CLI 把密钥注入容器官方文档里给了一条最省事的接入路径在应用镜像里装 Infisical CLI启动时自动拉取密钥并注入为环境变量。以 Alpine 基础镜像为例FROM alpine # 安装 Infisical CLIAlpine 版 RUN apk add --no-cache bash sudo wget wget -qO- \ https://artifacts-cli.infisical.com/setup.apk.sh | sh \ apk add infisical COPY . /app WORKDIR /app # 启动命令前缀 infisical run密钥自动注入为环境变量 CMD [infisical, run, --, npm run start]构建并运行时把 5.1 里创建的 Token 通过INFISICAL_TOKEN环境变量传进去docker build -t my-app . docker run --env INFISICAL_TOKENyour_token my-app容器里的应用代码一行不用改process.env.DB_PASSWORD之类就能直接读到值。Debian/Ubuntu、RHEL 系基础镜像对应的安装写法都收录在 docs/documentation/getting-started/docker.mdx 里照抄即可。六、跑起来之后这些能力值得单独体验密钥版本控制与定点恢复每次修改密钥都会留痕支持回看历史版本、对比差异还能做 Point-in-Time Recovery误操作把密钥改坏了可以直接回滚到某个时间点。相关说明见 secret-versioning 与 pit-recovery。密钥轮换与泄露扫描平台可对 PostgreSQL、MySQL、AWS IAM 等服务的凭据做定期自动轮换CLI 侧的infisical scan能扫描文件、目录和 git 仓库里 140 多种密钥类型infisical scan install --pre-commit-hook装好钩子后密钥在 push 前就会被拦下来从源头防泄露。用法见 cli/scanning-overview。细粒度访问控制项目成员可以按只读/编辑/管理分配权限机器身份则支持 RBAC、临时访问、审批工作流等更细的授权方式审计日志记录平台上每一次操作。七、翻车现场自救手册现象先查什么页面打不开backend 反复重启docker compose -f docker-compose.prod.yml ps看 db 是否达到healthy——backend 会等数据库健康检查通过才启动数据库起不来它就一直卡着容器直接起不来docker compose -f docker-compose.prod.yml logs -f看报错九成是.env没复制或ENCRYPTION_KEY/AUTH_SECRET被清空应用里读不到密钥依次核对INFISICAL_TOKEN是否传入、Token 作用域是否覆盖目标环境、启动命令是否带了infisical run前缀想清空重来docker compose -f docker-compose.prod.yml down停止服务数据卷pg_data、redis_data删掉后重新up即为全新实例更多部署选项Kubernetes Helm、单机裸金属、云上托管和加固建议在 self-hosting/overview.mdx 里有完整清单。八、延伸继续深入的方向CLI 全部子命令与infisical run的进阶用法docs/cli/usage.mdx把 Infisical 接到 Kubernetes 负载上helm-charts/ 下提供了官方 Chart想用 API 而不是控制台操作docs/api-reference/ 覆盖全部接口密钥同步到 GitHub、Vercel、AWS 等平台的集成清单docs/integrations/到这里一套跑在自己机器上的开源密钥管理平台就完整落地了三容器编排、一个.env、三条命令之后的事情——建密钥、发 Token、接应用——都在控制台里点完。【免费下载链接】infisicalInfisical is the open-source platform for secrets, certificates, and privileged access management.项目地址: https://gitcode.com/GitHub_Trending/in/infisical创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表