logo
2
0
Login
feat(ssh): 支持密码登录并自动生成随机密码

Cloud Base DevBox

基于Docker的开发环境容器集合,提供预配置的开发环境。

AllInOneDev

全功能开发环境容器,集成多种开发工具和运行时环境。

预装环境

  • 运行时: Node.js 22.x, Go 1.24.5, Python (Miniconda3)
  • 工具: Git, Vim, Zsh + Oh-My-Zsh
  • 服务: SSH (端口36000)

快速开始

创建 docker-compose.yml:

services: devbox: image: docker.cnb.cool/mintimate/code-nest/cloud-base-devbox/all-in-one:latest-linux-amd64 container_name: devbox restart: unless-stopped volumes: - /root/.ssh:/tmp/host-ssh:ro - ./workspace:/workspace ports: - 36000:36000 tty: true stdin_open: true

如果你是 VSCode 远程开发,只需要和我一样映射 36000 端口即可。VSCode 会自动处理分支端口都是用 SSH 映射到 localhost。

启动:

docker-compose up -d
# SSH 远程登录(支持密码登录,密码在容器启动时自动生成) ssh -p 36000 root@「服务器 IP」 # 容器进入 docker exec -it devbox zsh

密码管理

容器首次启动时会自动生成32位随机强密码:

  • 密码保存位置:/data/tmp/root_password.txt
  • 查看密码:docker exec devbox cat /data/tmp/root_password.txt
  • 容器重启后密码保持不变
  • 启动日志中会显示当前密码

获取密码示例:

# 查看容器启动日志中的密码 docker logs devbox | grep "Root密码" # 直接读取密码文件 docker exec devbox cat /data/tmp/root_password.txt

特性

  • 🔑 自动处理SSH密钥权限
  • 📁 工作空间持久化 (/workspace)
  • 🐚 预配置Zsh环境
  • 🔧 多语言开发环境

VSCode Remote-SSH

配置SSH连接:

Host devbox HostName 「服务器 IP」 Port 36000 User root

NginxWebOne

轻量级 Nginx Web 服务器容器,基于 Alpine Linux 构建。

特性

  • 🏔️ 基于 Alpine Linux 3.22,体积小巧
  • 📦 Nginx 1.28.0 源码编译,包含常用模块
  • 🌐 支持 HTTP/2 和 SSL/TLS
  • 📁 支持多站点配置
  • 🔒 非 root 用户运行,安全可靠

快速开始

services: nginx: image: docker.cnb.cool/mintimate/code-nest/cloud-base-devbox/web-one:latest-linux-amd64 container_name: nginx-dev restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./webRoot:/www/webRoot - ./webConf:/www/webConf - ./logs:/var/log/nginx

目录结构

/www/ ├── webRoot/ # 网站文件 └── webConf/ # 站点配置

常用命令

# 启动服务 docker-compose up -d # 重载配置(已配置环境变量) docker exec nginx-dev nginx -s reload # 查看日志 docker logs nginx-dev

配置示例

webConf/site.conf:

server { listen 80; server_name example.com; root /www/webRoot/example; index index.html; location / { try_files $uri $uri/ =404; } }

项目结构

cloud-base-devbox/ ├── README.md ├── AllInOneDev/ │ ├── Dockerfile │ └── entrypoint.sh └── NginxWebOne/ ├── Dockerfile └── nginx.conf