AI 云站开发环境 Docker 镜像构建配置。
├── amd64/ # AMD64 架构构建脚本
│ ├── build.sh - 构建 Docker 镜像
│ ├── push_image.sh - 推送镜像到仓库
│ └── quick_deploy.sh - 快速部署脚本
├── arm64/ # ARM64 架构构建脚本
│ ├── build.sh - 构建 Docker 镜像
│ ├── push_image.sh - 推送镜像到仓库
│ └── quick_deploy.sh - 快速部署脚本
├── src/ # Docker 镜像源文件
│ ├── Dockerfile - Docker 镜像构建文件
│ ├── docker-entrypoint.sh - 容器入口脚本,校验 s6 服务后启动 /init
│ ├── entrypoint.sh - s6-overlay 容器初始化脚本
│ ├── start-sshd.sh - SSHD 长运行服务启动脚本
│ ├── s6-services-guard.sh - s6 服务定义校验与隔离脚本
│ ├── custom_deploy.sh - 自定义部署脚本
│ └── workspace_welcome.md - 工作区欢迎文档模板
├── skills/ # 项目技能文档
│ └── s6-service-manager/ - s6 服务管理技能
└── README.md # 项目说明文档
# AMD64 架构
cd amd64 && cp build.sh.example build.sh
# 修改 build.sh 中的构建参数
# ARM64 架构
cd arm64 && cp build.sh.example build.sh
# 修改 build.sh 中的构建参数# AMD64 架构
cd amd64 && ./build.sh
# ARM64 架构
cd arm64 && ./build.sh# AMD64 架构
cd amd64 && ./push_image.sh
# ARM64 架构
cd arm64 && ./push_image.sh默认部署时,SSH 和临时测试服务端口仅绑定到宿主机 127.0.0.1,避免局域网或外网扫描产生异常登录日志。如需远程访问,请在部署脚本中显式设置 --bind-address 0.0.0.0,并配合防火墙白名单限制来源 IP。
# AMD64 架构
cd amd64 && ./quick_deploy.sh
# ARM64 架构
cd arm64 && ./quick_deploy.sh镜像使用 s6-overlay 作为容器 1 号主进程。容器初始化阶段会以 root 执行用户 UID/GID、密码、SSH 与挂载目录权限配置;通过 SSH 登录后仍进入 dev 用户。如需通过 docker exec 进入 dev 用户,请使用 docker exec -u dev -it <container> bash。
容器运行后,可以在容器内部创建 s6 管理的守护进程。s6-overlay v3 服务定义保存在 /etc/s6-overlay/s6-rc.d,并由部署脚本挂载到宿主机 $BASE_DATA_DIR/$USER_NAME/s6-services;同一个容器重启后会由 s6 自动拉起。运行时监督目录为 /run/service。启动时会先检查持久化服务定义,发现缺少 type/run、run 工作目录不存在、或编译失败的服务时,会把对应服务隔离到 .disabled-by-guard 隐藏目录,避免影响容器启动。具体设置参考技能 skills/s6-service-manager
本项目采用 MIT License。