Files
workpod/docs/00-规范/实例创建流程.md
T

2.5 KiB
Raw Blame History

实例创建流程

为新项目创建 WorkPod 开发容器的标准步骤。


前置条件

  • Docker 已安装并运行
  • 基础镜像已构建:docker images \| grep workpod-alpine

标准流程(3 步)

Step 1: 创建实例目录

cd E:/wk-lab/workpod
mkdir -p instances/{name}
cp instances/.template/docker-compose.yml instances/{name}/

Step 2: 编辑 compose 文件

打开 instances/{name}/docker-compose.yml,修改占位符:

占位符 改为 示例
{name} 实例名 suke
{SSH_PORT} SSH 端口 2211
{WEB_PORT} Web 端口 7711
{PROJECT_PATH} 项目路径 E:/wk-suke

按需取消注释:

  • Java 项目 → 取消注释 JDK/Maven volume 和 JAVA_HOME/MAVEN_HOME env
  • home 持久化 → 确保 ../../data/home/{name}:/root 已配置

Step 3: 注册并启动

编辑 instances/registry.yaml,在 local: 下添加新条目:

  - name: ws-{name}-dev
    display: {中文名}
    type: project
    project: {name}
    project_path: E:/wk-{name}
    image: ws-{name}-dev:latest
    ssh_port: {SSH_PORT}
    web_port: {WEB_PORT}
    network: workpod-{name}-network
    status: starting
    compose: instances/{name}/docker-compose.yml

启动:

cd instances/{name} && docker compose up -d --build

验证:

docker ps --filter name=ws-{name}
# 应看到端口映射正确

更新状态:registry.yamlstatus: startingrunning


可选:自定义镜像

如果项目需要额外工具(如 JDK),创建 instances/{name}/Dockerfile

FROM workpod-alpine:latest

LABEL org.opencontainers.image.title="ws-{name}-dev" \
      org.opencontainers.image.description="{描述}"

EXPOSE 22 7681

ENTRYPOINT ["/entrypoint.sh"]

compose 中添加 build 配置:

    build:
      context: ../../
      dockerfile: instances/{name}/Dockerfile
    image: ws-{name}-dev:latest

完整示例:创建 suke 实例

# 1. 创建目录 + 复制模板
mkdir -p instances/suke
cp instances/.template/docker-compose.yml instances/suke/

# 2. 替换占位符(手动或 sed
#    {name} → suke, {SSH_PORT} → 2211, {WEB_PORT} → 7711, {PROJECT_PATH} → E:/wk-suke

# 3. 注册到 registry.yaml(添加 local 条目)

# 4. 启动
cd instances/suke && docker compose up -d --build

# 5. 验证
docker ps --filter name=ws-suke
# curl -s http://localhost:7711 | head -5   # ttyd 可访问