以下内容镜像自GitHub,内容更新可能不及时。
基于 Arch Linux 的本机开发容器,默认 latest 是包含完整工具链的 full 镜像。镜像不依赖 systemd,容器入口会启动 sshd,并在 /coding 中提供可持续运行的 user tmux 会话。
可按需构建 base、python、c、systems 和 full;Node.js、npm、pnpm、Yarn 以及 Agent 客户端已经包含在 base。大陆用户可使用 base-zh,需要 paseo 服务时使用 paseo-base、paseo-base-zh 或 paseo-full,服务端口为 6767。
Warning
本项目仅面向受控的本机开发环境。镜像使用空密码、固定 SSH host 私钥和免密码 sudo,切勿将其 SSH 服务暴露到不可信网络。
需要预先安装 Docker。进入需要开发的宿主项目后:
mkdir -p "$HOME/.devimage"
docker pull azotegwei/devimage:latest
docker run --name dev -d \
--network host \
--userns keep-id:uid=1000,gid=1000 \
--user 0:0 \
-v "$PWD:/coding" \
-v "$HOME/.devimage:/chezmoi" \
azotegwei/devimage:latest
入口只在后台创建共享 tmux 会话,不占用容器控制台。通过 SSH 或 podman exec 进入 user 的交互式 fish 时会自动连接该会话;使用 Ctrl-b d 可断开当前客户端,同时保留容器及其中的进程。需要避开宿主 tmux 时,可执行 tmux_prefix C-a 一键修改容器内前缀。
另开终端后,可以通过 SSH 或 Podman 重新进入:
ssh -p 16022 [email protected]
podman exec -it dev fish
需要使用宿主 SSH Agent 时,把登录命令改为 ssh -A -p 16022 [email protected]。账户密码为空,出现密码提示时直接按 Enter。
完整的首次使用、tmux、配置持久化和排障流程见快速上手指南。
容器内建议安装仓库提供的 devimage-environment skill,让 Agent 了解镜像已有工具、依赖安装方式、chezmoi 持久化规则,以及 Git 和 SSH Agent 的配置要求:
请在容器内将 https://github.com/azotegwei/devimage clone 到 /tmp 下的临时目录,
然后按照当前 Agent 平台支持的方式安装仓库根目录中的 devimage-environment skill。
安装完成后可删除临时 clone;如需跨容器持久化,请将安装结果纳入 /chezmoi。
本开发容器按“原样”提供,仅用于内部测试、评估和开发目的。它并非为生产环境设计,不以生产环境为预期用途,也不保证适用于生产环境。任何在生产、商业或面向客户的场景中使用本容器所产生的风险,均由使用者自行承担。提供者不对本容器的性能、安全性或特定用途适用性作出任何明示或默示的保证。
Content type
Image
Digest
sha256:cd6490699…
Size
2.6 GB
Last updated
about 2 months ago
docker pull azotegwei/devimage