Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Cloud Station Dev Env

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/runrun 工作目录不存在、或编译失败的服务时,会把对应服务隔离到 .disabled-by-guard 隐藏目录,避免影响容器启动。具体设置参考技能 skills/s6-service-manager

License

本项目采用 MIT License。

About

AI 云端工作站:一个独立的容器开发环境

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages