Skip to content

[Feature] Docker support #136

@brenocq

Description

@brenocq

Feature description
To simplify Atta setup across Windows, Ubuntu, and macOS - and to allow multiple versions to coexist - we should provide an official Docker image that’s published automatically on every new Git tag. Users can then spin up Atta via a docker-compose.yml (no local installation required), and have the Atta GUI launch with their project running. The image must support forwarding of graphics (Vulkan/OpenGL) and be extensible for GPU acceleration with CUDA in future releases.

Tasks

  • Dockerfile & runtime setup

    • Create a multi-stage Dockerfile based on a lightweight Linux image, installing:
      • Atta runtime and dependencies
      • Vulkan/OpenGL loaders & utilities
      • A minimal X11/Wayland client environment for GUI forwarding
    • Configure environment variables and volume mounts to forward the host display (e.g. -e DISPLAY, -v /tmp/.X11-unix)
    • Add comments in the Dockerfile for future CUDA support (e.g. base on nvidia/cuda image when available)
  • Example Docker Compose

    • Create docker-compose.yml example that:
      • Mounts the user’s project directory into the container
      • Sets up display forwarding for Linux hosts
      • Includes commented hints for Windows/macOS users (e.g. using Docker Desktop’s XQuartz/VcXsrv)
    • Add instructions in README.md on how to launch Atta via:
      docker-compose up --build
  • GitHub Actions workflow

    • Add .github/workflows/docker-publish.yml triggered on push of any Git tag (refs/tags/*)
    • Use Docker Buildx to build multi-architecture images (linux/amd64, linux/arm64)
    • Authenticate to the chosen registry (GitHub Container Registry or Docker Hub) using GitHub Secrets
    • Build and push the image with the tag matching the Git tag:
      ghcr.io/your-org/atta:${{ github.ref_name }}
    • Add a job matrix for future CUDA-enabled variants (e.g. cuda vs. cpu)
  • Documentation & testing

    • Document in CONTRIBUTING.md and README.md:
      • How to run Atta via Docker on each platform
      • How version tags map to container tags
      • How to extend for CUDA GPU acceleration
    • Test the workflow by creating a test tag and verifying:
      • Image builds correctly on GitHub Actions
      • GUI forwarding works on an Ubuntu host
      • The sample docker-compose.yml spins up the Atta window running a demo project

Metadata

Metadata

Assignees

No one assigned

    Labels

    prio:mediumMedium prioritystatus:todoTask identified but not startedtype:choreMaintenance tasks (dependencies, configs)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions