···11-// For format details, see https://aka.ms/devcontainer.json. For config options, see the
22-// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
33-{
44- "name": "Lumina devenv",
55- "build": {
66- "dockerfile": "../env.Dockerfile"
77- },
88- // "features": {
99- // ghcr.io/devcontainers/features/docker-in-docker:2": {},
1010- // "ghcr.io/devcontainers-extra/features/mise:1": {}
1111- // },
1212- // Features to add to the dev container. More info: https://containers.dev/features.
1313- // "features": {},
1414- // Use 'forwardPorts' to make a list of ports inside the container available locally.
1515- "forwardPorts": [8085],
1616- // Use 'postCreateCommand' to run commands after the container is created.
1717- "postCreateCommand": [
1818- "mise trust",
1919- "mise use -g usage",
2020- "mise install",
2121- "mkdir -p ~/.local/share/bash-completion/completions",
2222- "mise completion bash --include-bash-completion-lib > ~/.local/share/bash-completion/completions/mise"
2323- ],
2424- "postStartCommand": ["git remote set-url origin ssh://git@git.strawmelonjuice.com/strawmelonjuice/Lumina.git"]
2525- // Configure tool-specific properties.
2626- // "customizations": {},
2727- // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
2828- // "remoteUser": "root"
2929-}
···11+FROM registry.fedoraproject.org/fedora-minimal:latest
22+SHELL ["/bin/bash", "-o", "pipefail", "-c"]
33+44+# Control these if you need to change the values in the 'devcontainer.json'
55+# file in the directory. They have matching values.
66+ARG USERNAME=vscode
77+ARG USERID=1000
88+ARG GROUPID=1000
99+1010+# Setup the user, basic packages, and python environment.
1111+# Try to keep everything system setup here.
1212+RUN set -ex; \
1313+ dnf5 update -y; \
1414+ dnf5 install --setopt=install_weak_deps=False -y \
1515+ python3-devel python3-wheel tar gcc make git wget which \
1616+ cmake clang++ lldb curl vim procps-ng openssh-clients; \
1717+ \
1818+ python3 -m ensurepip --upgrade; \
1919+ python3 -m pip install --no-cache-dir --upgrade pip; \
2020+ \
2121+ groupadd --gid ${GROUPID} ${USERNAME}; \
2222+ useradd --gid ${GROUPID} --uid ${USERID} -p ${USERNAME} \
2323+ -s /bin/bash -m ${USERNAME}; \
2424+2525+ENV MISE_DATA_DIR="/mise"
2626+ENV MISE_CONFIG_DIR="/mise"
2727+ENV MISE_CACHE_DIR="/mise/cache"
2828+ENV MISE_INSTALL_PATH="/usr/local/bin/mise"
2929+ENV PATH="/mise/shims:$PATH"
3030+RUN curl https://mise.run | sh
3131+3232+# Cleanup the installation and other packages here.
3333+# No more package installation from DNF should happen after this point.
3434+RUN set -ex; \
3535+ dnf5 clean all -y; \
3636+ rm -rf /var/cache/yum/* /var/cache/dnf/* /usr/share/doc/*;
3737+3838+# Ensure that the container is running the user that was created and the
3939+# workspace matyches what we expect by default.
4040+ENV PYTHONDONTWRITEBYTECODE=1
4141+WORKDIR /home/${USERNAME}
4242+USER ${USERNAME}
+58
.devcontainer/fedora_devenv/devcontainer.json
···11+// Based on https://github.com/danweinerdev/fedora-devcontainer-template/
22+{
33+ "containerUser": "vscode",
44+ "remoteUser": "vscode",
55+ "mounts": [
66+ ],
77+ "customizations": {
88+ "vscode": {
99+ "extensions": [
1010+ "EditorConfig.EditorConfig",
1111+ "ms-vscode.cpptools-themes",
1212+ "twxs.cmake",
1313+ "ms-vscode.cmake-tools"
1414+ ],
1515+ "settings": {
1616+ "files.exclude": {
1717+ "**/.classpath": true,
1818+ "**/.DS_Store": true,
1919+ "**/.factorypath": true,
2020+ "**/.git": true,
2121+ "**/.project": true,
2222+ "**/.settings": true,
2323+ "**/*.js": {
2424+ "when": "$(basename).ts"
2525+ },
2626+ "**/*.js.map": true
2727+ },
2828+ "telemetry.telemetryLevel": "off"
2929+ }
3030+ }
3131+ },
3232+ "features": {},
3333+ "name": "Lumina Fedora-based devenv",
3434+ "build": {
3535+ "dockerfile": "./devcontainer.Dockerfile"
3636+ },
3737+ // "features": {
3838+ // ghcr.io/devcontainers/features/docker-in-docker:2": {},
3939+ // "ghcr.io/devcontainers-extra/features/mise:1": {}
4040+ // },
4141+ // Features to add to the dev container. More info: https://containers.dev/features.
4242+ // "features": {},
4343+ // Use 'forwardPorts' to make a list of ports inside the container available locally.
4444+ "forwardPorts": [8085],
4545+ // Use 'postCreateCommand' to run commands after the container is created.
4646+ "postCreateCommand": [
4747+ "mise trust",
4848+ "mise use -g usage",
4949+ "mise install",
5050+ "mkdir -p ~/.local/share/bash-completion/completions",
5151+ "mise completion bash --include-bash-completion-lib > ~/.local/share/bash-completion/completions/mise"
5252+ ],
5353+ "postStartCommand": ["git remote set-url origin ssh://git@codeberg.org/strawmelonjuice/Lumina.git"]
5454+ // Configure tool-specific properties.
5555+ // "customizations": {},
5656+ // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
5757+ // "remoteUser": "root"
5858+}
+33
.devcontainer/ubuntu devenv/devcontainer.json
···11+// The Ubuntu-based devenv is lighter tested than the fedora based one.
22+// But in combination with microsoft's stuff, including github codespaces, it's the best performant option. Probably.
33+//
44+// That said, you'll have the problem with docker vs. podman. That's yours to deal with. :P (just replace podman in the local devel prep task and most cases should be fine)
55+66+{
77+ "name": "Lumina Ubuntu-based devenv",
88+ "image": "ghcr.io/prulloac/base:ubuntu-24.04",
99+1010+ // ๐ Features to add to the Dev Container. More info: https://containers.dev/implementors/features.
1111+ "features": {
1212+ "ghcr.io/devcontainers/features/docker-in-docker:2": {},
1313+ "ghcr.io/devcontainers-extra/features/mise:1": {},
1414+ "ghcr.io/devcontainers/features/rust": {
1515+ "version": "latest",
1616+ "profile": "default"
1717+ }
1818+ },
1919+2020+ // ๐ Use 'forwardPorts' to make a list of ports inside the container available locally.
2121+ // "forwardPorts": [],
2222+2323+ "postCreateCommand": [
2424+ "mise trust",
2525+ "mise use -g usage",
2626+ "mise install",
2727+ "mkdir -p ~/.local/share/bash-completion/completions",
2828+ "mise completion bash --include-bash-completion-lib > ~/.local/share/bash-completion/completions/mise"
2929+ ],
3030+ "postStartCommand": ["git remote set-url origin ssh://git@codeberg.org/strawmelonjuice/Lumina.git"]
3131+ // ๐ Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
3232+ // "remoteUser": "root"
3333+}