2024-01-09 00:31:06 +01:00
// 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
2024-06-06 21:50:42 +02:00
"ghcr.io/devcontainers-contrib/features/apt-packages:1" : {
2024-01-09 00:31:06 +01:00
// 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"
]
}
} ,
2024-08-02 19:23:27 +02:00
"updateContentCommand" : "cd server && yarn && cd ../collector && PUPPETEER_DOWNLOAD_BASE_URL=https://storage.googleapis.com/chrome-for-testing-public yarn && cd ../frontend && yarn && cd .. && yarn setup:envs && yarn prisma:setup && echo \"Please run yarn dev:server, yarn dev:collector, and yarn dev:frontend in separate terminal tabs.\"" ,
2024-01-09 00:31:06 +01:00
// Use 'postCreateCommand' to run commands after the container is created.
2024-08-05 18:29:56 +02:00
// This configures VITE for github codespaces and installs gh cli
"postCreateCommand" : "if [ \"${CODESPACES}\" = \"true\" ]; then echo 'VITE_API_BASE=\"https://$CODESPACE_NAME-3001.$GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN/api\"' > ./frontend/.env && (type -p wget >/dev/null || (sudo apt update && sudo apt-get install wget -y)) && sudo mkdir -p -m 755 /etc/apt/keyrings && wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main\" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null && sudo apt update && sudo apt install gh -y; fi" ,
2024-01-09 00:31:06 +01:00
"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"
2024-08-05 18:29:56 +02:00
}