feat(devcontainer): build a Devcontainer with useful tools for this project

Also use said devcontainer i GitHub workflows to validate config.

* feat(devcontainer): build devcontainer

Signed-off-by: Vegard Hagen <[email protected]>

* feat(ci): validate tofu files on push

Signed-off-by: Vegard Hagen <[email protected]>

* feat(devcontainer): simplify devcontainer

Signed-off-by: Vegard Hagen <[email protected]>

* fix(devcontainer): don't cache package index

This will reduce the final image size.

Signed-off-by: Vegard Hagen <[email protected]>

* feat(devcontainer): switch to ubuntu and use devcontainer features as much as possible

Signed-off-by: Vegard Hagen <[email protected]>

---------

Signed-off-by: Vegard Hagen <[email protected]>
This commit is contained in:
Vegard Stenhjem Hagen
2025-07-13 23:18:26 +02:00
committed by GitHub
parent f5841b4a3b
commit 1deb5aced1
19 changed files with 271 additions and 219 deletions
+29
View File
@@ -0,0 +1,29 @@
# Devcontainer
A container with all the necessary tools and then some used in this homelab.
Check available features at [https://containers.dev/features](https://containers.dev/features),
or edit the `Containerfile`.
**Disclaimer**: this is a fairly untested feature from the main author,
feedback is welcome.
## Getting started
Find the appropriate guide for your IDE, e.g.
* [IDEA](https://www.jetbrains.com/help/idea/start-dev-container-inside-ide.html)
* [VSCode](https://code.visualstudio.com/docs/devcontainers/containers)
Alternatively, you can start the devcontainer manually by running
```shell
docker run -it --rm \
--user $(id -u):$(id -g) \
--name homelab-devcontainer \
--mount target=/tmp,type=tmpfs \
--mount type=bind,src=.,dst=/workspace \
--workdir /workspace \
ghcr.io/vehagn/homelab-devcontainer:latest
```
from the project root.