Welcome to devcontainer-features
, a repository dedicated to the development and testing of new features for development containers (Dev Containers). This repository is designed to streamline the process of developing and testing Dev Container features, both locally and remotely using VSCode and GitHub CodeSpaces.
Dev Containers provide a fully configured development environment that can be used to develop and test applications in a consistent, reproducible manner. This repository contains a Dev Container definition to facilitate development.
This repository is structured to support the development of Dev Container features. It includes:
.devcontainer/
- Dev Container Definition: A definition for setting up a development environment quickly and efficiently..github/workflows/
- GitHub Actions: Automated workflows to test, publish, and maintain the quality of Dev Container features.src/*
,test/*
- Feature Directories: Each Dev Container feature has its own directory containing all necessary files.
- Bun: bun Javascript runtime written in zig, installed via node
- Deno: Deno Javascript runtime written in rust
- gitlint: gitlint git commit messages linter CLI tool
- LaTeX: TeX Live installation with both latex and tlmgr runtimes, integrated with a VSCode extension for enhanced functionality.
- ollama: ollama Run AI models locally with ollama's CLI.
- pre-commit: pre-commit framework for managing and maintaining multi-language pre-commit hooks in a single repository.
To run a Dev Container using VSCode:
- Ensure you have VSCode and the Remote - Containers extension installed.
- Clone the repository to your local machine.
- Open the repository folder in VSCode.
- VSCode may prompt you to reopen the folder in a container. If not, press
F1
and selectRemote-Containers: Open Folder in Container
.
To use a Dev Container in GitHub CodeSpaces:
- Navigate to the GitHub repository in your web browser.
- Click the 'Code' button and select 'Open with CodeSpaces'.
- If you have existing CodeSpaces, select one, or create a new CodeSpace.
- GitHub will prepare your Dev Container environment, allowing you to develop and test features directly in your browser.
You can test and develop features locally using the Dev Container CLI. This allows you to replicate the remote environment on your local machine using VSCode.
Our repository utilizes GitHub Actions for continuous integration and delivery:
- Test Workflow: Automatically tests code on every pull request update against the
main
branch. - Publish Workflow: Handles the publishing of Dev Container features.
- Auto-update Workflow: Automatically updates README.md files in feature directories.
This project is licensed under the MIT License - see the LICENSE file for details.
To get started with devcontainer-features
, clone the repository and follow the instructions in the README.md files of individual feature directories.
For support, questions, or more information, please open an issue in this repository.