From 91ed3f1f7ef8f40923ca1bedd5981cf4c09752c8 Mon Sep 17 00:00:00 2001 From: Scott Cranfill Date: Wed, 3 Jun 2026 21:05:06 +0000 Subject: [PATCH] docs: Replace template-devcontainer docs with the basics And ensure that the dev container is port forwarding. --- .devcontainer/devcontainer.json | 3 ++ .github/workflows/mkdocs.yml | 1 - .markdownlint.yaml | 4 -- docs/.pages | 4 +- docs/README.md | 44 ++++------------ docs/development.md | 50 ++++++++++++++++++ docs/features/.pages | 3 -- docs/features/dependabot.md | 21 -------- docs/features/devcontainer.md | 57 --------------------- docs/features/docs.md | 34 ------------- docs/features/editor.md | 22 -------- docs/features/pre-commit.md | 38 -------------- docs/img/define-output-example.png | Bin 0 -> 48577 bytes docs/img/define-set-example.png | Bin 0 -> 47932 bytes docs/setup.md | 48 +++++++++++++++++ docs/usage/.pages | 4 -- docs/usage/generate.md | 16 ------ docs/usage/img/generate-repo.png | Bin 51291 -> 0 bytes docs/usage/img/reopen-devcontainer.png | Bin 10335 -> 0 bytes docs/usage/reference-image.md | 65 ----------------------- docs/usage/run-local.md | 68 ------------------------- mkdocs.yml | 6 +-- 22 files changed, 116 insertions(+), 372 deletions(-) create mode 100644 docs/development.md delete mode 100644 docs/features/.pages delete mode 100644 docs/features/dependabot.md delete mode 100644 docs/features/devcontainer.md delete mode 100644 docs/features/docs.md delete mode 100644 docs/features/editor.md delete mode 100644 docs/features/pre-commit.md create mode 100644 docs/img/define-output-example.png create mode 100644 docs/img/define-set-example.png create mode 100644 docs/setup.md delete mode 100644 docs/usage/.pages delete mode 100644 docs/usage/generate.md delete mode 100644 docs/usage/img/generate-repo.png delete mode 100644 docs/usage/img/reopen-devcontainer.png delete mode 100644 docs/usage/reference-image.md delete mode 100644 docs/usage/run-local.md diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 53ca2c4..e337156 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -6,6 +6,9 @@ "dev", "docs" ], + "forwardPorts": [ + "docs:8001" + ], "workspaceFolder": "/compiler/app", "postCreateCommand": [ "/bin/bash", diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index dca8300..03c5978 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -7,7 +7,6 @@ on: paths: - ".github/workflows/mkdocs.yml" - "docs/**" - - ".markdownlint.yaml" - "mkdocs.yml" jobs: diff --git a/.markdownlint.yaml b/.markdownlint.yaml index f4c8d40..ed65633 100644 --- a/.markdownlint.yaml +++ b/.markdownlint.yaml @@ -1,10 +1,6 @@ # includes/excludes all rules by default default: true -# 4-space list indentation works best with MkDocs -MD007: - indent: 4 - # Remove line length limit - no one wants to hard wrap all their paragraphs MD013: false diff --git a/docs/.pages b/docs/.pages index 2547f3e..23b15a5 100644 --- a/docs/.pages +++ b/docs/.pages @@ -1,4 +1,4 @@ nav: - Home: README.md - - Features: features - - Usage: usage + - Setup: setup.md + - Development: development.md diff --git a/docs/README.md b/docs/README.md index 8163e6d..2a6321a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,45 +1,21 @@ -# template-devcontainer Docs +# Slackronyms Docs ## Introduction -This is the documentation site for [`compilerla/template-devcontainer`](https://github.com/compilerla/template-devcontainer). +This is the documentation site for [`compilerla/slackronyms`](https://github.com/compilerla/slackronyms), an open-source Slack app to help teams keep track of acronyms and other abbreviations. -`template-devcontainer` is a [template repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository) -with a minimal [VS Code devcontainer](https://code.visualstudio.com/docs/remote/containers) setup. +## Usage -`template-devcontainer` can be used as the basis for another language-specific devcontainer, -or as a quick ready-made Linux development environment. +When added to your workspace, Slackronyms provides a `/define` command that is used to both ouput and set definitions for a term, depending on the way the command is formatted. -Docs are built using [`mkdocs`](https://www.mkdocs.org/). This site is built using [`mkdocs-material`](https://squidfunk.github.io/mkdocs-material/). +### `/define ` -## Use this template +Outputs a definition for the given term as a public message in the current channel. The output does not reveal the identity of the person who requested it. -[Generate a new repository from the template](https://github.com/compilerla/template-devcontainer/generate){.md-button} +![example output from running the command /define TDQ](img/define-output-example.png) -## Why? +### `/define : ` -In no particular order, here are some reasons Compiler likes to use devcontainers as part of our software engineering workflow: +Appending a colon and a definition to a basic `/define ` command will set the definition for that term. -_Read more in our blog post: [How to support a platform-agnostic engineering team with VS Code Dev Containers](https://compiler.la/blog/2024/devcontainer-platform-agnostic-team)_. - -| Reason | More | -| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| **Cross-platform** | With only VS Code and Docker as dependencies, devcontainers allow developers on Linux, Mac, and Windows to work in a consistent environment, no matter the project's stack | -| **Easily extendable** | The VS Code community maintains a [library of extensions](https://marketplace.visualstudio.com/VSCode) to add features and functionality to the development environment; individual personalizations can be made via [dotfiles](https://code.visualstudio.com/docs/remote/containers#_personalizing-with-dotfile-repositories) | -| **Enforce best practices** | Baking linters, `pre-commit` checks, test runners, and more into the devcontainer ensures the team's best practices are no-brainer always-on features of the development workflow | -| **Rapid onboarding** | By minimizing the steps from `git clone` to getting tests to pass or the app running locally, devcontainers make it easier to onboard as a new developer and spend time contributing instead of wallowing in environment setup | -| **Unified code style** | With common editor settings like code formatting on save, standard indentation characters and spacing, consistent line endings, and more, the team never has to worry about what the code looks like or accidentally committing BOMs | - -## Prior art - -This template was informed by our work on recent projects as a remote-first, cross-platform development team. - -Some of our recent work built on the devcontainer pattern includes: - -- [`cal-itp/benefits`](https://github.com/cal-itp/benefits) (Python/Django web app) -- [`cal-itp/eligibility-api`](https://github.com/cal-itp/eligibility-api) (Python API library) -- [`cal-itp/eligibility-server`](https://github.com/cal-itp/eligibility-server) (Python/Flask API server) -- [`cal-itp/hashfields`](https://github.com/cal-itp/hashfields) (Python CLI tool) -- [`cal-itp/mobility-marketplace`](https://github.com/cal-itp/mobility-marketplace) (Jekyll static site) -- [`compilerla/compiler.la`](https://github.com/compilerla/compiler.la) (Jekyll static site) -- [`compilerla/conventional-pre-commit`](https://github.com/compilerla/conventional-pre-commit) (Python pre-commit hook) +![example output from running the command /define CDT: California Department of Technology](img/define-set-example.png) diff --git a/docs/development.md b/docs/development.md new file mode 100644 index 0000000..66e017c --- /dev/null +++ b/docs/development.md @@ -0,0 +1,50 @@ +# Development + +!!! info "See also" + + VS Code tutorial: [Remote development in Containers](https://code.visualstudio.com/docs/devcontainers/tutorial) + +## Setting up the dev container + +We include a [Dev Container](https://code.visualstudio.com/docs/devcontainers/containers) configuration to help with local testing and development. + +First, follow the [Setup](../setup/) steps to create the app in your Slack workspace and load your keys into a `.env` file. + +**The first time you run this project** you'll have to manually build the app container in your terminal, because the dev container is built from the app container. + +```sh +docker compose build app +``` + +From there, connect to the dev container to begin working on the project: + +1. Open the repository directory in VS Code +1. Ctrl/Cmd+Shift+P to bring up the Command Palette +1. Start typing `devcontainers` to filter the command list +1. Select **Rebuild and Reopen in Container** to start from scratch +1. Select **Reopen in Container** to reopen the last dev container used + +Once inside the dev container, you have to manually start the app by pressing F5 (or switch the primary sidebar to Run and Debug and click the play button). + +You should see output in a new terminal indicating that the app is now running, and you should now be able to invoke it in your Slack test workspace! Try the `/define` command to confirm. + +!!! important + After modifying app code, it will need to be restarted for the changes to take effect. Press Ctrl/Cmd+Shift+F5 to restart it (or click the refresh icon that appeared in the top menu bar). Your updated code will now be invoked the next time you run a command in Slack. + +The app can be stopped with Shift+F5 (or the stop icon in the top menu bar). + +To exit the dev container, use the **Reopen Folder Locally** command. + +## Run the tests + +Python unit tests are written with [`pytest`](https://docs.pytest.org/en/latest/) and can be run when the dev container is open by using the VS Code Testing sidebar or in a terminal: + +1. Open a new terminal + +1. ```bash + cd slackronyms/ + ``` + +1. ```bash + pytest + ``` diff --git a/docs/features/.pages b/docs/features/.pages deleted file mode 100644 index 0318277..0000000 --- a/docs/features/.pages +++ /dev/null @@ -1,3 +0,0 @@ -nav: - - Devcontainer: devcontainer.md - - ... diff --git a/docs/features/dependabot.md b/docs/features/dependabot.md deleted file mode 100644 index f67bd78..0000000 --- a/docs/features/dependabot.md +++ /dev/null @@ -1,21 +0,0 @@ -# Dependabot - -!!! summary "Configuration" - - - **Main config file:** [`.github/dependabot.yml`](https://github.com/compilerla/template-devcontainer/blob/main/.github/dependabot.yml) - -## Introduction - -[Dependabot](https://docs.github.com/en/code-security/dependabot) is GitHub's service for keeping repository dependencies -up to date and staying ahead of security vulnerabilities in open source packages. - -Based on the configured package ecosystems, Dependabot will send alerts to repository administrators for security-related events -in referenced packages. Dependabot will also open Pull Requests to update dependencies when fixes are published. - -## Features - -### GitHub Actions - -Watches for updates to GitHub Actions workflow steps, e.g. [`actions/checkout`](https://github.com/actions/checkout). - -Read more about [Keeping actions up to date with Dependabot](https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot) diff --git a/docs/features/devcontainer.md b/docs/features/devcontainer.md deleted file mode 100644 index 424964b..0000000 --- a/docs/features/devcontainer.md +++ /dev/null @@ -1,57 +0,0 @@ -# Devcontainer - -!!! summary "Configuration" - - - **Main config file:** [`devcontainer.json`](https://github.com/compilerla/template-devcontainer/blob/main/.devcontainer/devcontainer.json) - - **Dependencies:** [`requirements.txt`](https://github.com/compilerla/template-devcontainer/blob/main/.devcontainer/requirements.txt) - - **Dockerfile:** [`Dockerfile`](https://github.com/compilerla/template-devcontainer/blob/main/.devcontainer/Dockerfile) - - **Service definition:** [`compose.yml`](https://github.com/compilerla/template-devcontainer/blob/main/compose.yml) - - **Finalization:** [`postAttach.sh`](https://github.com/compilerla/template-devcontainer/blob/main/.devcontainer/postAttach.sh) - -## Introduction - -[VS Code](https://code.visualstudio.com/) can be used together with Docker via the -[Remote - Containers](https://code.visualstudio.com/docs/remote/containers) extension to enable a container-based development -environment. - -As a remote-first, cross-platform development team, Compiler uses devcontainers to ease the onboarding -and local development process for our engineering team, and to ensure our Open Source projects are widely accessible and easily -reproducable for others. - -## The image - -The devcontainer's image is called `compilerla/template-devcontainer`. - -### Base - -The image is based on [`python:3.11`](https://hub.docker.com/_/python), to ease installation of common tooling like -[`mkdocs`](docs.md) and [`pre-commit`](pre-commit.md). - -### Setup - -Most setup is performed as the non-root `$USER`, with a default of `compiler`. - -A home directory is created at `/home/$USER` and the working directory is set to `/home/$USER/src`. - -Additional command-line tools included in the image: - -- `curl` -- `git` -- `pip` -- `wget` - -See the official [`python` image on DockerHub](https://hub.docker.com/_/python) for more. - -### Requirements - -The `.devcontainer/requirements.txt` file lists [`PyPI`](https://pypi.org/) packages installed by default into the devcontainer. - -### Extensions - -The `devcontainer/devcontainer.json` file lists VS Code extensions installed with the devcontainer. These include: - -- [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) for supercharing the `git` experience -- [Git Graph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph) for visualizing the `git` commit history -- [markdownlint](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) for Markdown linting and style checking directly in VS Code -- [Mermaid Markdown Syntax Highlighting](https://marketplace.visualstudio.com/items?itemName=bpruitt-goddard.mermaid-markdown-syntax-highlighting) for editing Mermaid diagrams in [documentation](docs.md) -- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) for good default formatting and linting of most file types diff --git a/docs/features/docs.md b/docs/features/docs.md deleted file mode 100644 index 35d758b..0000000 --- a/docs/features/docs.md +++ /dev/null @@ -1,34 +0,0 @@ -# Documentation - -!!! summary "Configuration" - - - **Main config file:** [`mkdocs.yml`](https://github.com/compilerla/template-devcontainer/blob/main/mkdocs.yml) - - **Additional dependencies:** [`docs/requirements.txt`](https://github.com/compilerla/template-devcontainer/blob/main/docs/requirements.txt) - - **Installation:** [`Dockerfile`](https://github.com/compilerla/template-devcontainer/blob/main/.devcontainer/Dockerfile) - - **Service definition:** [`compose.yml`](https://github.com/compilerla/template-devcontainer/blob/main/compose.yml) - -## Introduction - -The devcontainer includes a system for building project documentation, useful for developing and publishing a full-featured -documentation website, either as a standalone entity or as part of a software library/project. - -Documenation is written in plaintext files using the popular [Markdown syntax](https://www.markdownguide.org/basic-syntax/). -Besides being widely supported and straightfowrad to edit in a variety of platforms, documentation written as Markdown is -easily versioned by systems like `git`. - -The Python-based [`mkdocs`](https://www.mkdocs.org/) tool builds Markdown documentation files into a website structure. - -Themeing and additional documentation content functionality are provided by the -[`mkdocs-material`](https://squidfunk.github.io/mkdocs-material/) extension. - -## Features - -- Complete color themes for both light and dark modes -- Google Analytics support (with a `G-xxxxxxxxxx` configuration) -- Site search -- Icons from [`FontAwesome`](https://fontawesome.com/) -- [Diagram support via Mermaid.js](https://squidfunk.github.io/mkdocs-material/reference/diagrams/) -- Better site navigation with [`awesome-pages`](https://github.com/lukasgeiter/mkdocs-awesome-pages-plugin/) -- Redirect old URLs when content moves around with [`redirects`](https://github.com/mkdocs/mkdocs-redirects) - -See the [`mkdocs-material` Reference](https://squidfunk.github.io/mkdocs-material/reference/) for more supported features. diff --git a/docs/features/editor.md b/docs/features/editor.md deleted file mode 100644 index f00c11e..0000000 --- a/docs/features/editor.md +++ /dev/null @@ -1,22 +0,0 @@ -# Editor - -!!! summary "Configuration" - - - **Main config file:** [`.vscode/settings.json`](https://github.com/compilerla/template-devcontainer/blob/main/.vscode/settings.json) - -## Introduction - -The core editor experience and configuration of VS Code - -## Features - -### Shared settings - -- `utf-8` file encoding -- `\n` newlines, final newlines trimmed, final newline added -- trailing whitespace trimmed -- Prettier as the default file formatter - -### Custom settings - -Further personalization can be loaded by individual developers using a [dotfiles repository](https://code.visualstudio.com/docs/remote/containers#_personalizing-with-dotfile-repositories). diff --git a/docs/features/pre-commit.md b/docs/features/pre-commit.md deleted file mode 100644 index 431aad6..0000000 --- a/docs/features/pre-commit.md +++ /dev/null @@ -1,38 +0,0 @@ -# pre-commit - -!!! summary "Configuration" - - - **Main config file:** [`.pre-commit-config.yaml`](https://github.com/compilerla/template-devcontainer/blob/main/.pre-commit-config.yaml) - - **Initialization:** [`Dockerfile`](https://github.com/compilerla/template-devcontainer/blob/main/.devcontainer/Dockerfile) - - **Finalization:** [`postAttach.sh`](https://github.com/compilerla/template-devcontainer/blob/main/.devcontainer/postAttach.sh) - -## Introduction - -[`pre-commit`](https://pre-commit.com/) is a Python framework for running "hooks" during various points in the `git commit` -workflow. - -`pre-commit` hooks do things like enforce commit message formatting and check and automatically clean up file formatting. - -Integrating these checks with the `git commit` workflow ensures every commit follows team conventions and reduces the chance -for simple syntax errors and other hidden bugs. - -## Features - -### Conventional Commits - -Compiler follows the [Conventional Commits](https://www.conventionalcommits.org/) specification for writing commit messages. - -[`compilerla/conventional-pre-commit`](https://github.com/compilerla/conventional-pre-commit) is a `pre-commit` hook that -enforces this convention for every commit. - -### Markdownlint - -[`markdownlint`](https://github.com/DavidAnson/markdownlint) is a static analysis tool (linter) for Markdown documents. - -The related [`markdownlint-cli`](https://github.com/igorshubovych/markdownlint-cli#use-with-pre-commit) tool can be used as -a `pre-commit` hook. - -### Pre-Commit Hooks - -[`pre-commit-hooks`](https://github.com/pre-commit/pre-commit-hooks) is a collection of useful hooks maintained by the -`pre-commit` team. diff --git a/docs/img/define-output-example.png b/docs/img/define-output-example.png new file mode 100644 index 0000000000000000000000000000000000000000..0abfa19ecffcfa43c5012ae1585a47d39e82dd52 GIT binary patch literal 48577 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 literal 0 HcmV?d00001 diff --git a/docs/setup.md b/docs/setup.md new file mode 100644 index 0000000..332b98c --- /dev/null +++ b/docs/setup.md @@ -0,0 +1,48 @@ +# Setup + +Setting up this Slack app requires two main things: + +1. A Slack workspace where you have permission to install apps (or can request it) +1. Standing up the application provided in the `slackronyms` folder of this repo somewhere it can run persistently + +## 1. Create and install your Slack app + +1. Open [https://api.slack.com/apps/new](https://api.slack.com/apps/new) and choose **From a manifest**. +1. Choose the workspace you want to install the application to. +1. Replace the contents of the JSON code block with the contents of [`manifest.json`](https://github.com/compilerla/slackronyms/blob/main/slackronyms/manifest.json). +1. Review the configuration and click **Create**. +1. Click **Install to Workspace** and **Allow** on the screen that follows. You'll then be redirected to the App Configuration dashboard. + +The app is now "installed" in the workspace, but it won't do anything until it can connect to the running code. + +## 2. Stand up the Python app + +### Prerequisites + +- An environment where you can run a Python 3.14 app +- A place to store the JSON file that holds the terms and definitions data + - This could be the local filesystem of the Python app, if it's persistent (e.g., an EC2 instance). + - If you use the container provided in `appcontainer/Dockerfile`, you'll need to store the file in some other location and configure the app to read and write from that. + +### Environment Variables + +Before you can run the app, you'll need to store some environment variables. If you're planning to use the containerized app, you can do this by creating a `.env` file and using the `docker compose` configuration provided in `compose.yml` to start the container. + +1. Create a `.env` file from the sample at the root of the repo: + + ```sh + cp .env.sample .env + ``` + +1. Open your app's configuration page from [this list](https://api.slack.com/apps), click **OAuth & Permissions** in the left hand menu, then copy the Bot User OAuth Token. Paste it for `SLACK_BOT_TOKEN` in your `.env` file. +1. Click **Basic Information** from the left hand menu and follow the steps in the App-Level Tokens section to create an app-level token with the `connections:write` scope. Copy this token and paste it for `SLACK_APP_TOKEN` in your `.env` file. + +### Running the application + +A `Dockerfile` is provided in the `appcontainer` folder that will install necessary dependencies and run the app. To build and run it: + +```sh +docker compose up app +``` + +You should see output in a new terminal indicating that the app is now running, and you should now be able to invoke it in your Slack test workspace! Try the `/define` command to confirm. diff --git a/docs/usage/.pages b/docs/usage/.pages deleted file mode 100644 index f3df8c7..0000000 --- a/docs/usage/.pages +++ /dev/null @@ -1,4 +0,0 @@ -nav: - - generate.md - - run-local.md - - reference-image.md diff --git a/docs/usage/generate.md b/docs/usage/generate.md deleted file mode 100644 index 62ca590..0000000 --- a/docs/usage/generate.md +++ /dev/null @@ -1,16 +0,0 @@ -# Generate a new repository - -!!! info "See also" - - GitHub docs: [Creating a repository from a template](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) - -The simplest way to get started is to create a new repository from the template: - -[Generate a new repository from the template](https://github.com/compilerla/template-devcontainer/generate){.md-button} - -This will copy the files and directory structure from the template into a new repository of your choosing. - -If you intend to publish a [Documentation website](../features/docs.md), be sure to make this a `Public` repository and check the -box to `Include all branches`: - -![Screenshot of creating a new repository from the template on GitHub](img/generate-repo.png) diff --git a/docs/usage/img/generate-repo.png b/docs/usage/img/generate-repo.png deleted file mode 100644 index 884cae03ebd4a48c09db4ee506278fe92b163e3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51291 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 z 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 b#}^u8IO)?3FaAaepM928kf;#*67YWj0cB~s diff --git a/docs/usage/reference-image.md b/docs/usage/reference-image.md deleted file mode 100644 index 23cb16c..0000000 --- a/docs/usage/reference-image.md +++ /dev/null @@ -1,65 +0,0 @@ -# Reference the pre-built image - -!!! summary "Configuration" - - - **Workflow file:** [`.github/workflows/publish-devcontainer.yml`](https://github.com/compilerla/template-devcontainer/blob/main/.github/workflows/publish-devcontainer.yml) - - **GHCR Packages:** [`compilerla/template-devcontainer`](https://github.com/compilerla/template-devcontainer/pkgs/container/template-devcontainer) - - **Minimal devcontainer.json:** [`devcontainer.pre-built.json`](https://github.com/compilerla/template-devcontainer/blob/main/.devcontainer/devcontainer.pre-built.json) - -`template-devcontainer` maintains a [GitHub Actions](https://github.com/features/actions) workflow that publishes Docker -images to [GitHub Container Registry (GHCR)](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry). - -The publish is triggered for every push to the `main` branch, and multiple image tags are created: - -- `main` uses the default Python version of 3.11 -- `main_3.10` uses Python 3.10 -- `main_3.12` uses Python 3.12 - -There are also corresponding tags for the git SHA of the commit on `main` that triggered the build -(e.g. `sha`, `sha_3.10`, and `sha_3.12`). - -This makes the pre-built devcontainer image available for use in other projects, potentially decreasing startup and onboarding -time even further. - -## From a `devcontainer.json` configuration - -The pre-built devcontainer image can be used as the basis for another `devcontainer.json` configuration, similar to how one -might reference any other image on Docker Hub or GHCR: - -```json -{ - "name": "compilerla/template-devcontainer-pre-built", - "image": "ghcr.io/compilerla/template-devcontainer:main", - // initialize pre-commit hooks on attach (assumes .pre-commit-config.yaml) - "postAttachCommand": "pre-commit install --overwrite" - // other settings -} -``` - -Our [`devcontainer.pre-built.json`](https://github.com/compilerla/template-devcontainer/blob/main/.devcontainer/devcontainer.pre-built.json) -shows a minimal example to get a devcontainer running with the same configuration as the normal `devcontainer.json`, using the -pre-built image. - -See the full [`devcontainer.json` Reference](https://code.visualstudio.com/docs/remote/devcontainerjson-reference) for details. - -## Using Docker Compose - -In a `docker-compose.yml` or `compose.yml` file, you can reference the GHCR image directly in a service definition: - -```yaml -services: - myservice: - image: ghcr.io/compilerla/template-devcontainer:main - volume: ./:/home/compiler/src -``` - -Note the `volume` entry mapping the current directory (with the `compose.yml` file) into the [devcontainer working directory](../features/devcontainer.md#setup). - -And then starting the service with: - -```shell -docker compose up myservice -``` - -This is perhaps a less useful approach, with the default `CMD` and `ENTRYPOINT` set in such a way as to make the container -essentially hang (useful when attaching from VS Code). diff --git a/docs/usage/run-local.md b/docs/usage/run-local.md deleted file mode 100644 index e452ee9..0000000 --- a/docs/usage/run-local.md +++ /dev/null @@ -1,68 +0,0 @@ -# Run the devcontainer locally - -!!! info "See also" - - VS Code tutorial: [Remote development in Containers](https://code.visualstudio.com/docs/remote/containers-tutorial) - -## Prerequisites - -### Docker - -Docker is required; the easiest way to get Docker is by downloading and installing [Docker Desktop](https://www.docker.com/products/docker-desktop/) for Linux, Mac (including Apple Silicon!) and Windows. - -### VS Code - -You will also need [VS Code](https://code.visualstudio.com/) and the -[`Remote - Containers` extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) installed. - -### Source code - -Ensure you have a local copy of this template repository: - -```shell -git clone https://github.com/compilerla/template-devcontainer -``` - -Or another repository you generated from this template. - -## Open the repo in VS Code - -From the command line: - -```shell -code /path/to/repository -``` - -Or from the VS Code UI: - -`File > Open Folder > /path/to/repository` - -## Reopen in devcontainer - -At this point, the VS Code UI should prompt you to reopen the folder in the devcontainer: - -![VS Code notification to Reopen the folder in the devcontainer](img/reopen-devcontainer.png) - -### Rebuild and Reopen - -To completely rebuild the devcontainer from scratch and reopen the VS Code window, attached to the running devcontainer: - -1. Bring up the VS Code _Command Palette_ with: `Ctrl/Cmd + Shift + P` -1. Enter `Remote-Containers` to filter the list -1. Enter or select the `Rebuild and Reopen in Container` option - -### Reopen - -To reopen VS Code attached to the most recently built and used devcontainer (the build is skipped if not needed): - -1. Bring up the VS Code _Command Palette_ with: `Ctrl/Cmd + Shift + P` -1. Enter `Remote-Containers` to filter the list -1. Enter or select the `Reopen in Container` option - -## Close the devcontainer - -From within the devcontainer, to close the connection and reopen VS Code on your local (host) machine: - -1. Bring up the VS Code _Command Palette_ with: `Ctrl/Cmd + Shift + P` -1. Enter `Remote-Containers` to filter the list -1. Enter or select the `Reopen Folder Locally` option diff --git a/mkdocs.yml b/mkdocs.yml index 3217da0..53e91f8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,7 +1,7 @@ -site_name: "compilerla/template-devcontainer: Documentation" -repo_url: https://github.com/compilerla/template-devcontainer +site_name: "compilerla/slackronyms: Documentation" +repo_url: https://github.com/compilerla/slackronyms edit_uri: edit/main/docs -site_url: https://compilerla.github.io/template-devcontainer +site_url: https://compilerla.github.io/slackronyms theme: name: material