Skip to content

refactor: remove Docker-related worker-only files - #64

Merged
sebyx07 merged 4 commits into
mainfrom
update-bot-configs-incus
Feb 15, 2026
Merged

sebyx07 merged 4 commits into
mainfrom
update-bot-configs-incus

Conversation

@sebyx07

@sebyx07 sebyx07 commented Feb 15, 2026 •

Copy link
Copy Markdown
Contributor

Summary

This is part of the final task in the "Update Bot Configs, Deploy Scripts & Provision for Incus" PR group. Removed all Docker-related files that were worker-only, keeping only the master Docker infrastructure (Dockerfile, docker-compose.yml).

Changes

Deleted Files (Worker-Only Docker Infrastructure)

  • docker/images/*/Dockerfile (all 5 worker-specific Docker images)
  • scripts/build-images.sh (Docker image build script)
  • scripts/test-images.sh (Docker image test script)
  • .github/workflows/build-images.yml (Docker CI workflow)

Preserved Files (Master Docker Infrastructure)

  • Dockerfile (master app container)
  • docker-compose.yml (master orchestrator stack)
  • .dockerignore (still needed for master)

Context

Workers now exclusively use Incus/LXC containers managed via SSH. All Docker worker infrastructure has been removed. The master continues to run in Docker via docker-compose.

Related Tasks Completed

This PR completes tasks 10-13 of the migration plan:

  • ✓ Task 10: Update bot configurations to use Incus sandbox type
  • ✓ Task 11: Create Incus worker provisioning script
  • ✓ Task 12: Update deploy scripts for Incus workers
  • ✓ Task 13: Remove Docker-related worker-only files

🤖 Generated with Claude Code

Greptile Overview

Greptile Summary

Completed migration from Docker to Incus for worker infrastructure by removing all Docker worker-specific files and updating deployment scripts. Master continues using Docker Compose (Dockerfile, docker-compose.yml), while workers now exclusively use Incus/LXC containers managed via SSH.

Key Changes:

  • Deleted 5 Docker worker image Dockerfiles and related CI/CD workflow
  • Removed Docker image build/test scripts (build-images.sh, test-images.sh)
  • Created new provision-worker.sh script that installs Incus and builds base images (ai-army-base, ai-army-base-docker)
  • Updated deployment scripts to separate master (Docker) and worker (Incus) logic
  • Simplified bot configs to use Incus sandbox type consistently
  • Added .mcp.json with kubeez MCP server configuration

Note: Worker template files in templates/workers/*.yml still reference Docker images like ai-army/backend-developer:latest on line 11, but these templates are independent configuration examples and don't affect the runtime since the actual worker provisioning now creates Incus base images instead.

Confidence Score: 5/5

  • Safe to merge - clean refactoring that removes obsolete infrastructure
  • All Docker worker-only files properly removed with no dangling references. Deployment scripts correctly updated to handle master/worker split. Bot configurations consistently updated. The change is backward-compatible since master Docker infrastructure is preserved.
  • No files require special attention

Important Files Changed

Filename Overview
scripts/provision-worker.sh New provisioning script for Incus workers - installs Incus and creates base images
scripts/deploy-all.sh Updated to separate master (Docker) and worker (Incus) deployment logic
scripts/provision-server.sh Simplified to only provision master server with Docker, workers use provision-worker.sh
bots/assistant/config.json Added sandbox configuration with Incus type
.mcp.json New MCP server configuration for kubeez HTTP server

Flowchart

flowchart TB
    subgraph Master["Master Server (Docker)"]
        DC[docker-compose.yml]
        DF[Dockerfile]
        DC --> APP[App Container]
        DC --> PG[Postgres Container]
        DF -.builds.-> APP
    end
    
    subgraph Workers["Worker Servers (Incus/LXC)"]
        PW[provision-worker.sh]
        PW --> INCUS[Incus Installation]
        INCUS --> BASE1[ai-army-base image]
        INCUS --> BASE2[ai-army-base-docker image]
        BASE1 --> CONT1[LXC Container 1]
        BASE1 --> CONT2[LXC Container 2]
        BASE2 --> CONT3[LXC Container 3]
    end
    
    subgraph Deleted["❌ Deleted Worker Files"]
        DI1[docker/images/backend-developer/]
        DI2[docker/images/frontend-developer/]
        DI3[docker/images/data-scientist/]
        DI4[docker/images/devops-engineer/]
        DI5[docker/images/qa-engineer/]
        BS[scripts/build-images.sh]
        TS[scripts/test-images.sh]
        GH[.github/workflows/build-images.yml]
    end
    
    DA[deploy-all.sh] -->|Docker Compose| Master
    DA -->|SSH + Incus| Workers
    
    style Deleted fill:#fee,stroke:#c33,stroke-width:2px,stroke-dasharray: 5 5
    style Master fill:#e3f2fd,stroke:#1976d2
    style Workers fill:#f3e5f5,stroke:#7b1fa2
Loading

Last reviewed commit: 9ab6ac3

sebyx07 and others added 4 commits February 15, 2026 02:39
- Remove backwards compatibility fields (incusImage, packages) from daniel-francoeur-assistant and sebastian-buza-assistant configs
- Packages are now handled by base Incus images instead
- Add sandbox configuration to assistant bot (using default Incus type)
- Simplify sandbox config to only specify type: 'incus' per new Incus-only worker architecture

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Create scripts/provision-worker.sh: installs Incus via Zabbly PPA,
  initializes with `incus admin init --auto`, builds ai-army-base and
  ai-army-base-docker LXC images with agent user, Node 22, Python3,
  and build tools
- Update scripts/provision-server.sh: now provisions Docker only on
  master server, workers use provision-worker.sh instead
- Add WORKER_SERVERS/WORKER_NAMES arrays to scripts/servers.sh for
  worker-specific operations

Co-Authored-By: Claude <noreply@anthropic.com>
- Split deploy-all.sh into deploy_master (Docker Compose) and
  deploy_worker (sync code + verify Incus) functions
- Workers no longer run docker compose — they only host LXC containers
  managed remotely by master
- Update status-all.sh to check incus list on workers instead of
  docker compose ps
- Update logs.sh to use incus commands for worker log viewing

Co-Authored-By: Claude <noreply@anthropic.com>
Deleted:
- docker/images/* (all worker-specific Docker images)
- scripts/build-images.sh (Docker image build script)
- scripts/test-images.sh (Docker image test script)
- .github/workflows/build-images.yml (Docker CI workflow)

Kept:
- Dockerfile (master app container)
- docker-compose.yml (master orchestrator stack)
- .dockerignore (still needed for master)

Workers now use Incus/LXC exclusively, no Docker backend needed.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@sebyx07 sebyx07 added the claudetm Claude Task Master managed PRs label Feb 15, 2026
@sebyx07
sebyx07 merged commit 0920af9 into main Feb 15, 2026
7 checks passed
@sebyx07
sebyx07 deleted the update-bot-configs-incus branch February 15, 2026 02:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

claudetm Claude Task Master managed PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant