mirror of
https://github.com/outbackdingo/homelab-v.git
synced 2026-08-25 14:53:19 +00:00
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:
@@ -0,0 +1 @@
|
||||
FROM docker.io/ubuntu:24.04
|
||||
@@ -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.
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"name": "Stonegarden Homelab Devcontainer",
|
||||
"build": {
|
||||
"dockerfile": "Containerfile",
|
||||
},
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/common-utils:2": {
|
||||
"installZsh": true,
|
||||
"configureZshAsDefaultShell": true,
|
||||
"installOhMyZsh": true,
|
||||
"installOhMyZshConfig": true,
|
||||
"upgradePackages": true,
|
||||
"username": "homelab"
|
||||
},
|
||||
"ghcr.io/devcontainers/features/aws-cli:1": {},
|
||||
"ghcr.io/devcontainers/features/azure-cli:1": {},
|
||||
"ghcr.io/devcontainers/features/github-cli:1": {},
|
||||
"ghcr.io/devcontainers/features/git:1": {},
|
||||
"ghcr.io/devcontainers/features/go:1": {},
|
||||
"ghcr.io/devcontainers/features/java:1": {},
|
||||
"ghcr.io/devcontainers/features/python:1": {},
|
||||
"ghcr.io/devcontainers/features/hugo:1": {
|
||||
"extended": "true"
|
||||
},
|
||||
"ghcr.io/devcontainers/features/kubectl-helm-minikube:1": {},
|
||||
"ghcr.io/devcontainers-extra/features/argo-cd:1": {},
|
||||
"ghcr.io/devcontainers-extra/features/helmfile:1": {},
|
||||
"ghcr.io/devcontainers-extra/features/talosctl:1": {},
|
||||
"ghcr.io/devcontainers-extra/features/yamllint:2": {},
|
||||
"ghcr.io/dhoeric/features/k9s:1": {},
|
||||
"ghcr.io/dhoeric/features/google-cloud-cli:1": {
|
||||
"installGkeGcloudAuthPlugin": true
|
||||
},
|
||||
"ghcr.io/eitsupi/devcontainer-features/jq-likes": {
|
||||
"jqVersion": "latest",
|
||||
"yqVersion": "latest"
|
||||
},
|
||||
"ghcr.io/jungaretti/features/vim:1": {},
|
||||
"ghcr.io/robbert229/devcontainer-features/postgresql-client:1": {},
|
||||
"ghcr.io/robbert229/devcontainer-features/opentofu:1": {},
|
||||
"ghcr.io/schlich/devcontainer-features/powerlevel10k:1": {},
|
||||
"ghcr.io/skriptfabrik/devcontainer-features/hcloud-cli:1": {},
|
||||
"ghcr.io/skriptfabrik/devcontainer-features/infisical-cli:1.1.1": {},
|
||||
},
|
||||
"remoteUser": "homelab"
|
||||
}
|
||||
Reference in New Issue
Block a user