anything-llm/.devcontainer/devcontainer.json
Timothy Carambat 98cef508a6
Feature/devcontv2 (#1622)
* Updated apt-packages source for devcontainer

Switched the devcontainer's package source to a different repository to
align with updated dependencies and package availability. The previous
source from 'rocker-org' is replaced with 'devcontainers-contrib', which
may offer more recent or relevant development tools.

* Subject: Centralize prettier ignores and refine
config

Body:
Centralized all prettier ignore rules by removing individual
`.prettierignore` files in subprojects and updating the root
`.prettierignore` to include previously ignored patterns, ensuring
consistency across the workspace. Additionally, the prettier
configuration was refined by making the file pattern for `.config.js`
files consistent and adjusting quote styles for better readability. All
lint scripts across the project were updated to respect the centralized
ignore path, enhancing maintainability.

The consolidation simplifies the process of managing ignore rules as the
project scales, ensuring developers can focus on writing code without
worrying about divergent formatting standards. These changes also align
with introducing comprehensive linting across multiple environments to
keep the codebase clean and consistent.

This adjustment is a foundational step towards a more streamlined and
unified code base, making it easier for new contributors to adhere to
established coding standards and reducing the cognitive load associated
with managing multiple configuration files across the project.

* unset package json changes

---------

Co-authored-by: Francisco Bischoff <franzbischoff@gmail.com>
Co-authored-by: Francisco Bischoff <984592+franzbischoff@users.noreply.github.com>
2024-06-06 12:50:42 -07:00

212 lines
6.4 KiB
JSON

// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/javascript-node
{
"name": "Node.js",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
// "build": {
// "args": {
// "ARG_UID": "1000",
// "ARG_GID": "1000"
// },
// "dockerfile": "Dockerfile"
// },
// "containerUser": "anythingllm",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/javascript-node:1-18-bookworm",
// Features to add to the dev container. More info: https://containers.dev/features.
"features": {
// Docker very useful linter
"ghcr.io/dhoeric/features/hadolint:1": {
"version": "latest"
},
// Terraform support
"ghcr.io/devcontainers/features/terraform:1": {},
// Just a wrap to install needed packages
"ghcr.io/devcontainers-contrib/features/apt-packages:1": {
// Dependencies copied from ../docker/Dockerfile plus some dev stuff
"packages": [
"build-essential",
"ca-certificates",
"curl",
"ffmpeg",
"fonts-liberation",
"git",
"gnupg",
"htop",
"less",
"libappindicator1",
"libasound2",
"libatk-bridge2.0-0",
"libatk1.0-0",
"libc6",
"libcairo2",
"libcups2",
"libdbus-1-3",
"libexpat1",
"libfontconfig1",
"libgbm1",
"libgcc1",
"libgfortran5",
"libglib2.0-0",
"libgtk-3-0",
"libnspr4",
"libnss3",
"libpango-1.0-0",
"libpangocairo-1.0-0",
"libstdc++6",
"libx11-6",
"libx11-xcb1",
"libxcb1",
"libxcomposite1",
"libxcursor1",
"libxdamage1",
"libxext6",
"libxfixes3",
"libxi6",
"libxrandr2",
"libxrender1",
"libxss1",
"libxtst6",
"locales",
"lsb-release",
"procps",
"tzdata",
"wget",
"xdg-utils"
]
}
},
"updateContentCommand": "yarn setup",
// Use 'postCreateCommand' to run commands after the container is created.
// This configures VITE for github codespaces
"postCreateCommand": "if [ \"${CODESPACES}\" = \"true\" ]; then echo 'VITE_API_BASE=\"https://$CODESPACE_NAME-3001.$GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN/api\"' > ./frontend/.env; fi",
"portsAttributes": {
"3001": {
"label": "Backend",
"onAutoForward": "notify"
},
"3000": {
"label": "Frontend",
"onAutoForward": "openPreview"
}
},
"capAdd": [
"SYS_ADMIN" // needed for puppeteer using headless chrome in sandbox
],
"remoteEnv": {
"NODE_ENV": "development",
"ESLINT_USE_FLAT_CONFIG": "true",
"ANYTHING_LLM_RUNTIME": "docker"
},
// "initializeCommand": "echo Initialize....",
"shutdownAction": "stopContainer",
// Configure tool-specific properties.
"customizations": {
"codespaces": {
"openFiles": [
"README.md",
".devcontainer/README.md"
]
},
"vscode": {
"openFiles": [
"README.md",
".devcontainer/README.md"
],
"extensions": [
"bierner.github-markdown-preview",
"bradlc.vscode-tailwindcss",
"dbaeumer.vscode-eslint",
"editorconfig.editorconfig",
"esbenp.prettier-vscode",
"exiasr.hadolint",
"flowtype.flow-for-vscode",
"gamunu.vscode-yarn",
"hashicorp.terraform",
"mariusschulz.yarn-lock-syntax",
"ms-azuretools.vscode-docker",
"streetsidesoftware.code-spell-checker",
"actboy168.tasks",
"tombonnike.vscode-status-bar-format-toggle",
"ms-vscode.js-debug"
],
"settings": {
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[dockercompose]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[dockerfile]": {
"editor.defaultFormatter": "ms-azuretools.vscode-docker"
},
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[markdown]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[postcss]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[toml]": {
"editor.defaultFormatter": "tamasfe.even-better-toml"
},
"eslint.debug": true,
"eslint.enable": true,
"eslint.experimental.useFlatConfig": true,
"eslint.run": "onSave",
"files.associations": {
".*ignore": "ignore",
".editorconfig": "editorconfig",
".env*": "properties",
".flowconfig": "ini",
".prettierrc": "json",
"*.css": "tailwindcss",
"*.md": "markdown",
"*.sh": "shellscript",
"docker-compose.*": "dockercompose",
"Dockerfile*": "dockerfile",
"yarn.lock": "yarnlock"
},
"javascript.format.enable": false,
"javascript.inlayHints.enumMemberValues.enabled": true,
"javascript.inlayHints.functionLikeReturnTypes.enabled": true,
"javascript.inlayHints.parameterTypes.enabled": true,
"javascript.inlayHints.variableTypes.enabled": true,
"js/ts.implicitProjectConfig.module": "CommonJS",
"json.format.enable": false,
"json.schemaDownload.enable": true,
"npm.autoDetect": "on",
"npm.packageManager": "yarn",
"prettier.useEditorConfig": false,
"tailwindCSS.files.exclude": [
"**/.git/**",
"**/node_modules/**",
"**/.hg/**",
"**/.svn/**",
"**/dist/**"
],
"typescript.validate.enable": false,
"workbench.editorAssociations": {
"*.md": "vscode.markdown.preview.editor"
}
}
}
}
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}