Skip to content

Add AOC Container Base into AOC Refactor#244

Open
cooperj wants to merge 8 commits intoaoc_refactorfrom
aoc_refactor_container
Open

Add AOC Container Base into AOC Refactor#244
cooperj wants to merge 8 commits intoaoc_refactorfrom
aoc_refactor_container

Conversation

@cooperj
Copy link
Member

@cooperj cooperj commented Mar 19, 2026

This PR adds the new AOC Container Base docker workflow, as a part of #242.

You should be able to test this either using the devcontainer configuration for development workflows or running the demo.compose.yaml file with the commands:

docker compose -f demo.compose.yaml build
docker compose -f demo.compose.yaml up

I have built this on the staging release of aoc_container_base while we are working on the VNC workflow (LCAS/aoc_container_base#2) to be finalised.

After that I think we should look at is the production/on-robot deployment of this, including adding extra steps such as github workflows.


**Copilot Summary**

This pull request refactors the development container setup for the project, moving from a single Dockerfile-based approach to a more modular, Docker Compose-based workflow. The changes introduce a multi-stage Dockerfile, new Docker Compose configurations for both development and demo environments, and clean up redundant scripts. The setup now uses a dedicated ros user, persistent build volumes, and an integrated VNC service for GUI access.

Development container and workflow modernization:

  • Switched from a single Dockerfile build to a Docker Compose-based setup, introducing .devcontainer/compose.yaml for development and demo.compose.yaml for demo deployments, each orchestrating both the main ROS container and a VNC service for GUI access. (.devcontainer/compose.yaml, demo.compose.yaml) [1] [2]
  • Updated .devcontainer/devcontainer.json to use the new Compose setup, specify the ros user, and forward the correct VNC port. (.devcontainer/devcontainer.json)

Dockerfile improvements and user management:

  • Refactored .devcontainer/Dockerfile to support multi-stage builds, use a custom base image, set up the workspace for the ros user, and automate dependency installation and building with colcon. (.devcontainer/Dockerfile)

Cleanup of legacy scripts:

  • Removed obsolete setup scripts (install.sh, run.sh) that are no longer needed with the new automated Dockerfile and Compose setup. (.devcontainer/install.sh, .devcontainer/run.sh) [1] [2]

@cooperj cooperj self-assigned this Mar 19, 2026
@cooperj
Copy link
Member Author

cooperj commented Mar 19, 2026

Looking into removing the requirement for ros-{distro}-desktop being installed.

What I'm looking for is people to play with it and let me know what they think regarding the usability of it, and then build a deployable version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant