From 72bdf524c2456270cbe075e7d2b5936d47884add Mon Sep 17 00:00:00 2001 From: Hayden <64056131+hay-kot@users.noreply.github.com> Date: Sat, 15 Oct 2022 12:56:58 -0800 Subject: [PATCH] chore: init dev container (#85) --- .devcontainer/Dockerfile | 5 +++++ .devcontainer/devcontainer.json | 40 +++++++++++++++++++++++++++++++++ Taskfile.yml | 6 +++++ 3 files changed, 51 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..54cade4 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,5 @@ +# [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 18, 16, 14, 18-bullseye, 16-bullseye, 14-bullseye, 18-buster, 16-buster, 14-buster +ARG VARIANT=16-bullseye +FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-${VARIANT} + +RUN sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b ~/.local/bin \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..285b897 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,40 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: +// https://github.com/microsoft/vscode-dev-containers/tree/v0.245.2/containers/typescript-node +{ + "name": "Node.js & TypeScript", + "build": { + "dockerfile": "Dockerfile", + // Update 'VARIANT' to pick a Node version: 18, 16, 14. + // Append -bullseye or -buster to pin to an OS version. + // Use -bullseye variants on local on arm64/Apple Silicon. + "args": { + "VARIANT": "18-bullseye" + } + }, + + // Configure tool-specific properties. + "customizations": { + // Configure properties specific to VS Code. + "vscode": { + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "dbaeumer.vscode-eslint" + ] + } + }, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + "forwardPorts": [ + 7745, + 3000 + ], + + // Use 'postCreateCommand' to run commands after the container is created. + "postCreateCommand": "go install github.com/go-task/task/v3/cmd/task@latest && npm install -g pnpm && task setup", + + // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. + "remoteUser": "node", + "features": { + "golang": "1.19" + } +} diff --git a/Taskfile.yml b/Taskfile.yml index e885488..860ebb4 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -4,6 +4,12 @@ env: HBOX_STORAGE_SQLITE_URL: .data/homebox.db?_fk=1 tasks: + setup: + desc: Install dependencies + cmds: + - go install github.com/swaggo/swag/cmd/swag@latest + - cd backend && go mod tidy + - cd frontend && pnpm install --shamefully-hoist generate: desc: | Generates collateral files from the backend project