Containerized Development Environment
March 20, 2026 ยท View on GitHub
This document describes how to set up and use a containerized development environment for ARO-RP.
Choose the guide for your platform:
Files for this setup
The following files, located at the project root, are used for this setup:
Dockerfile.dev-env: Defines the container image with necessary dependencies and tools.docker-compose.yml: Contains the definition for thearo-dev-envservice.docker-compose.dev-env-linux.yml: Linux-specific override (adds host Podman socket mount).docker-compose.dev-env-macos.yml: macOS-specific override (privileged mode, no SELinux labels).hack/devtools/dev-env-entrypoint.sh: Entrypoint script that auto-detects the Podman runtime.
How the Local Workspace is Mounted
The containerized development environment mounts your local workspace and configuration into the container for seamless development:
- Local repository: Your entire ARO-RP repository (
.) is mounted to/workspaceinside the container - Azure CLI config: Your local
~/.azuredirectory is mounted read-only to/home/aro-dev/.azurefor authentication - SSH keys: Your local
~/.sshdirectory is mounted read-only to/home/aro-dev/.sshfor Git operations - Secrets: Your local
./secretsdirectory is mounted read-only to/workspace/secretsfor RP configuration
This means any changes you make to files in your local repository are immediately available inside the container, and vice versa. The container's working directory is set to /workspace, so you're working directly with your local code.