bin的Docker部署教程:3步构建体积超小的静态二进制镜像(含docker-compose实战)

📅 发布时间:2026/8/24 9:44:13
bin的Docker部署教程:3步构建体积超小的静态二进制镜像(含docker-compose实战) bin的Docker部署教程3步构建体积超小的静态二进制镜像含docker-compose实战【免费下载链接】bin:wastebasket: a paste bin.项目地址: https://gitcode.com/gh_mirrors/bi/binbin 是一款用 Rust 编写的极简paste bin文本粘贴分享服务无需数据库、无需评论系统却能在几分钟内通过 Docker 完成部署。本教程带你3 步构建体积超小的静态二进制镜像并实战 docker-compose 一键启动让你快速拥有专属的代码片段分享平台。 为什么选择 bin 做你的 paste binbin 的核心理念是真正的极简零依赖不依赖数据库所有粘贴内容存放在内存中超轻量核心代码仅约 300 行编译后是一个静态二进制文件速度快基于 Actix-Web 框架处理请求飞快代码高亮粘贴 URL 后加文件扩展名即可启用语法高亮curl 友好一条curl命令即可提交和读取内容 适合场景团队内部共享配置、临时分享日志片段、作为 API 调试的便签服务。 3 步部署总览步骤内容预计耗时1获取项目源码1 分钟2构建多阶段 Docker 镜像2 分钟3docker-compose 启动并验证1 分钟第 1 步获取 bin 项目源码在终端执行以下命令克隆仓库需要已安装 Dockergit clone https://gitcode.com/gh_mirrors/bi/bin cd bin克隆完成后你会看到两个部署相关的核心文件Dockerfile多阶段构建配置是整个小体积镜像的关键docker-compose.yml服务编排配置负责端口映射第 2 步解析 Dockerfile 多阶段构建 项目自带的 Dockerfile 采用了多阶段构建Multi-stage Build这是构建静态二进制小镜像的最佳实践# 第一阶段编译环境仅用于构建 FROM rust:1-alpine AS builder RUN apk add --no-cache musl-dev COPY . /sources WORKDIR /sources RUN cargo build --release # 第二阶段运行时FROM scratch 空镜像 FROM scratch COPY --frombuilder /sources/target/release/bin /pastebin COPY --frombuilder /etc/passwd /etc/passwd USER nobody EXPOSE 8000 ENTRYPOINT [/pastebin, 0.0.0.0:8000]三个关键设计musl-dev使用 musl 标准库编译出静态链接的二进制文件不依赖任何 glibc 动态库FROM scratch最终镜像基于完全空白的 scratch 镜像只包含可执行文件本身镜像体积通常不到 5MBUSER nobody以非 root 用户运行提升安全性构建镜像只需一条命令docker build -t bin-paste:latest .第 3 步用 docker-compose 一键启动docker-compose.yml 的配置非常简洁services: bin: build: context: . dockerfile: Dockerfile ports: - 8000:8000启动服务docker compose up -d看到bin容器状态为Up后浏览器访问http://服务器IP:8000即可看到极简的粘贴页面。✅ 部署后验证3 种测试方式方式一浏览器测试打开http://localhost:8000输入内容提交即可得到分享链接。方式二curl 命令行测试# 提交内容 curl -X PUT --data hello world http://localhost:8000 # 输出示例/cateettary # 读取该粘贴 curl http://localhost:8000/cateettary方式三代码高亮测试在粘贴链接后加上文件扩展名例如/cateettary.rs即可获得 Rust 代码的语法高亮显示。⚙️ 启动参数配置指南bin 支持 3 个启动参数定义见 src/main.rs按需修改 Dockerfile 中的ENTRYPOINT即可参数说明默认值bind_addr位置参数监听地址127.0.0.1:8820--buffer-size最大同时存储的粘贴条数超出后自动淘汰最早的1000--max-paste-size单条粘贴的最大字节数32KB例如想同时存储 5000 条、每条最大 128KB可将 ENTRYPOINT 改为ENTRYPOINT [/pastebin, 0.0.0.0:8000, --buffer-size, 5000, --max-paste-size, 131072]⚠️ 注意内容仅存于内存容器重启后所有粘贴会丢失。这正是极简设计的哲学——快速分享无需持久化。❓ 常见问题Q镜像为什么这么小AFROM scratch musl 静态编译的组合最终镜像只有二进制文件本体远小于基于 alpine 或 ubuntu 的镜像。Q如何限制访问A修改 docker-compose 中的端口映射为127.0.0.1:8000:8000仅本机可访问或在外层加 Nginx 反向代理与 HTTPS。Q支持 IPv6 吗A支持将bind_addr改为[::]:8000即可监听所有 IPv4/IPv6 地址。 总结特性说明镜像体积约 5MBscratch 基底依赖无数据库、无外部服务端口8000部署命令docker compose up -d至此你已经用3 步完成了体积超小的 paste bin 服务部署整个过程无需数据库、无需配置文件非常适合部署在任意一台闲置的小服务器上成为团队内部高效的片段分享工具。【免费下载链接】bin:wastebasket: a paste bin.项目地址: https://gitcode.com/gh_mirrors/bi/bin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考