# philips-software/amp-devcontainer architecture

> Architecture diagram of the GitHub repository philips-software/amp-devcontainer, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/philips-software/amp-devcontainer
- Repository: https://github.com/philips-software/amp-devcontainer

## Overview

amp-devcontainer provides multi-platform development container images and project templates for C++, embedded C++, Rust, embedded Rust, and documentation work. The main workflow is for a developer to choose a template, open it in VS Code or Codespaces, and work inside the configured container. The README documents the flavor capabilities and shared base; implementation details beyond the listed configuration and Dockerfile paths are not inferred from the sampled source.

Main entry points: [`.devcontainer/base/Dockerfile`](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/base/Dockerfile) (Base image), [`.devcontainer/cpp/Dockerfile`](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/cpp/Dockerfile) (C++ image), [`.devcontainer/cpp/devcontainer.json`](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/cpp/devcontainer.json) (C++ configuration), [`.devcontainer/embedded-cpp`](https://github.com/philips-software/amp-devcontainer/tree/main/.devcontainer/embedded-cpp) (Embedded C++ image)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Shared foundation"]
  node_base["Base image<br/>[Dockerfile]"]
  node_basecfg["Base configuration<br/>[devcontainer.json]"]
end

subgraph group_native["C++ flavors"]
  node_cpp["C++ image<br/>[Dockerfile]"]
  node_cppcfg["C++ configuration<br/>[devcontainer.json]"]
  node_cpptpl["C++ template"]
  node_ecpp["Embedded C++ image<br/>[embedded-cpp]"]
  node_ecppcfg["Embedded C++ configuration<br/>[devcontainer.json]"]
  node_ecpptpl["Embedded C++ template"]
end

subgraph group_rust["Rust flavors"]
  node_rust["Rust image<br/>[Dockerfile]"]
  node_rustcfg["Rust configuration<br/>[devcontainer.json]"]
  node_rusttpl["Rust template"]
  node_erust["Embedded Rust image<br/>[embedded-rust]"]
  node_erustcfg["Embedded Rust configuration<br/>[devcontainer.json]"]
  node_erusttpl["Embedded Rust template"]
end

subgraph group_docs["Documentation flavor"]
  node_docsimg["Docs image<br/>[Dockerfile]"]
  node_docscfg["Docs configuration<br/>[devcontainer.json]"]
  node_docstpl["Docs template"]
end

node_developer(("Developer"))
node_ide["VS Code / Codespaces"]
node_runtime["OCI container runtime"]

node_developer -->|"opens project"| node_ide
node_ide -->|"loads config"| node_cppcfg
node_ide -->|"loads config"| node_ecppcfg
node_ide -->|"loads config"| node_rustcfg
node_ide -->|"loads config"| node_erustcfg
node_ide -->|"loads config"| node_docscfg
node_basecfg -->|"configures"| node_base
node_cppcfg -->|"configures"| node_cpp
node_ecppcfg -->|"configures"| node_ecpp
node_rustcfg -->|"configures"| node_rust
node_erustcfg -->|"configures"| node_erust
node_docscfg -->|"configures"| node_docsimg
node_base -->|"runs in"| node_runtime
node_cpp -->|"runs in"| node_runtime
node_ecpp -->|"runs in"| node_runtime
node_rust -->|"runs in"| node_runtime
node_erust -->|"runs in"| node_runtime
node_docsimg -->|"runs in"| node_runtime
node_developer -->|"chooses template"| node_cpptpl
node_developer -->|"chooses template"| node_ecpptpl
node_developer -->|"chooses template"| node_rusttpl
node_developer -->|"chooses template"| node_erusttpl

click node_base "https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/base/Dockerfile"
click node_basecfg "https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/base/devcontainer.json"
click node_cpp "https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/cpp/Dockerfile"
click node_cppcfg "https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/cpp/devcontainer.json"
click node_cpptpl "https://github.com/philips-software/amp-devcontainer/blob/main/templates/cpp/devcontainer-template.json"
click node_ecpp "https://github.com/philips-software/amp-devcontainer/tree/main/.devcontainer/embedded-cpp"
click node_ecppcfg "https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/embedded-cpp/devcontainer.json"
click node_ecpptpl "https://github.com/philips-software/amp-devcontainer/blob/main/templates/embedded-cpp/devcontainer-template.json"
click node_rust "https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/rust/Dockerfile"
click node_rustcfg "https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/rust/devcontainer.json"
click node_rusttpl "https://github.com/philips-software/amp-devcontainer/blob/main/templates/rust/devcontainer-template.json"
click node_erust "https://github.com/philips-software/amp-devcontainer/tree/main/.devcontainer/embedded-rust"
click node_erustcfg "https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/embedded-rust/devcontainer.json"
click node_erusttpl "https://github.com/philips-software/amp-devcontainer/blob/main/templates/embedded-rust/devcontainer-template.json"
click node_docsimg "https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/docs/Dockerfile"
click node_docscfg "https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/docs/devcontainer.json"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_base,node_basecfg toneBlue
class node_cpp,node_cppcfg,node_cpptpl,node_ecpp,node_ecppcfg,node_ecpptpl toneAmber
class node_rust,node_rustcfg,node_rusttpl,node_erust,node_erustcfg,node_erusttpl toneMint
class node_docsimg,node_docscfg,node_docstpl toneRose
class node_developer,node_ide,node_runtime toneIndigo
```

## Components

### Shared foundation

- [Base image](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/base/Dockerfile): `.devcontainer/base/Dockerfile`
- [Base configuration](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/base/devcontainer.json): `.devcontainer/base/devcontainer.json`

### C++ flavors

- [C++ image](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/cpp/Dockerfile): `.devcontainer/cpp/Dockerfile`
- [C++ configuration](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/cpp/devcontainer.json): `.devcontainer/cpp/devcontainer.json`
- [C++ template](https://github.com/philips-software/amp-devcontainer/blob/main/templates/cpp/devcontainer-template.json): `templates/cpp/devcontainer-template.json`
- [Embedded C++ image](https://github.com/philips-software/amp-devcontainer/tree/main/.devcontainer/embedded-cpp): `.devcontainer/embedded-cpp`
- [Embedded C++ configuration](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/embedded-cpp/devcontainer.json): `.devcontainer/embedded-cpp/devcontainer.json`
- [Embedded C++ template](https://github.com/philips-software/amp-devcontainer/blob/main/templates/embedded-cpp/devcontainer-template.json): `templates/embedded-cpp/devcontainer-template.json`

### Rust flavors

- [Rust image](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/rust/Dockerfile): `.devcontainer/rust/Dockerfile`
- [Rust configuration](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/rust/devcontainer.json): `.devcontainer/rust/devcontainer.json`
- [Rust template](https://github.com/philips-software/amp-devcontainer/blob/main/templates/rust/devcontainer-template.json): `templates/rust/devcontainer-template.json`
- [Embedded Rust image](https://github.com/philips-software/amp-devcontainer/tree/main/.devcontainer/embedded-rust): `.devcontainer/embedded-rust`
- [Embedded Rust configuration](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/embedded-rust/devcontainer.json): `.devcontainer/embedded-rust/devcontainer.json`
- [Embedded Rust template](https://github.com/philips-software/amp-devcontainer/blob/main/templates/embedded-rust/devcontainer-template.json): `templates/embedded-rust/devcontainer-template.json`

### Documentation flavor

- [Docs image](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/docs/Dockerfile): `.devcontainer/docs/Dockerfile`
- [Docs configuration](https://github.com/philips-software/amp-devcontainer/blob/main/.devcontainer/docs/devcontainer.json): `.devcontainer/docs/devcontainer.json`
- **Docs template**

### Other components

- **Developer**
- **VS Code / Codespaces**
- **OCI container runtime**

## Connections

- Developer → VS Code / Codespaces: opens project
- VS Code / Codespaces → C++ configuration: loads config
- VS Code / Codespaces → Embedded C++ configuration: loads config
- VS Code / Codespaces → Rust configuration: loads config
- VS Code / Codespaces → Embedded Rust configuration: loads config
- VS Code / Codespaces → Docs configuration: loads config
- Base configuration → Base image: configures
- C++ configuration → C++ image: configures
- Embedded C++ configuration → Embedded C++ image: configures
- Rust configuration → Rust image: configures
- Embedded Rust configuration → Embedded Rust image: configures
- Docs configuration → Docs image: configures
- Base image → OCI container runtime: runs in
- C++ image → OCI container runtime: runs in
- Embedded C++ image → OCI container runtime: runs in
- Rust image → OCI container runtime: runs in
- Embedded Rust image → OCI container runtime: runs in
- Docs image → OCI container runtime: runs in
- Developer → C++ template: chooses template
- Developer → Embedded C++ template: chooses template
- Developer → Rust template: chooses template
- Developer → Embedded Rust template: chooses template
