Skip to content

Commit

Permalink
Add devcontainer configuration
Browse files Browse the repository at this point in the history
devcontainers can be used by IDEs like VSCode to build the whole development environment in a container.
This allows you to keep dependencies, build, and all development aspects separated from any development.
It also allows contributors to instantly have a working, standardized development environment.
It also allows cloud development tools like GitHub Codespaces be automatically setup with the desired environment.

See https://containers.dev/ for more details
  • Loading branch information
jhollowe committed Nov 22, 2022
1 parent 92d456d commit 8a2d004
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ARG VARIANT="16-buster"
FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:${VARIANT}

RUN npm install -g pnpm

ENV PATH="${PATH}:./node_modules/.bin"
27 changes: 27 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"name": "homepage",
"build": {
"dockerfile": "Dockerfile",
"args": {
"VARIANT": "18-buster"
}
},
"customizations": {
"vscode": {
"extensions": [
"dbaeumer.vscode-eslint",
"mhutchie.git-graph",
"streetsidesoftware.code-spell-checker",
],
"settings": {
"eslint.format.enable": true,
"eslint.lintTask.enable": true,
"eslint.packageManager": "pnpm"
}
}
},
"postCreateCommand": ".devcontainer/setup.sh",
"forwardPorts": [
3000
]
}
11 changes: 11 additions & 0 deletions .devcontainer/setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash

# Install Node packages
pnpm install

# Copy in skeleton configuration if there is no existing configuration
if [ ! -d "config/" ]; then
echo "Adding skeleton config"
mkdir config/
cp -r src/skeleton/* config
fi

0 comments on commit 8a2d004

Please sign in to comment.