logo
0
0
Login

🚀 Cloudflare Workers 通用容器化环境

本项目提供了一个高效、灵活的 Docker 解决方案,用于在本地或任何支持容器化部署的环境(如 K8s, Cloud Run)中运行 Cloudflare Workers 代码。我们将 workerd 运行时环境与 Workers 业务代码彻底解耦。

✨ 核心特性

  • 即时部署: 利用预构建的基础镜像,实现 Workers 代码的快速打包和部署。
  • 多架构支持: 基础镜像原生支持 linux/amd64linux/arm64,覆盖所有主流云环境和本地开发机。
  • 代码热更新: 本地开发模式下,通过 Volume 挂载实现代码即时同步,无需重复构建。
  • 动态配置: 支持通过 WORKERD_PORT 环境变量灵活配置服务端口。

📁 文件结构与用途

文件名用途对应阶段
worker.js你的 Workers 源代码文件。应用代码
Dockerfile.prod生产环境构建蓝图,用于将 worker.js 固化到最终镜像。生产部署
docker-compose.yml编排构建、运行和测试生产镜像的工具。本地部署
cf-workerd-base/包含基础运行时环境 (Dockerfile.base, entrypoint.sh) 的目录。基础设施

🛠️ 本地开发与部署指南

1. 前提条件

你需要本地安装 Docker 和 Docker Compose。

2. 本地开发模式 (代码热更新)

此模式允许你直接运行已构建的基础镜像,并通过挂载卷实时测试 worker.js 的修改。

假设你已经从 CI/CD 仓库拉取了基础镜像(例如:docker.cnb.cool/xzydm/cloudflare-workerd-base/cfworkerd-base:latest)。

# 假设 BASE_IMAGE_TAG 已定义 BASE_IMAGE_TAG="docker.cnb.cool/xzydm/cloudflare-workerd-base/cfworkerd-base:latest" # 1. 清理旧容器 (如果存在) docker rm -f cf-worker-dev # 2. 运行容器并挂载本地 worker.js docker run -d \ -p 8080:8080 \ -e WORKERD_PORT=8080 \ --name cf-worker-dev \ -v $(pwd)/worker.js:/app/worker.js \ "${BASE_IMAGE_TAG}"

3. 生产环境部署 (使用 Docker Compose)

对于最终部署,使用 docker-compose 可以一键完成代码固化(通过 Dockerfile.prod)和容器启动。

# 1. 确保 worker.js 和 docker-compose.yml 存在于当前目录。 # 2. 构建并运行服务: docker-compose up --build -d

停止和清理服务:

docker-compose down

About

No description, topics, or website provided.
Language
Shell81.6%
JavaScript18.4%