mirror of
https://github.com/Mintplex-Labs/anything-llm.git
synced 2024-11-15 02:50:10 +01:00
b96129961e
* open the server port to public on container post create * install gh on container start * remove port command until needed * look for port 3001 to be available and make public * install netcat * run background nc task before server start * add sleep 5 due to error clashing with server start * remove netcat, use gh cli
212 lines
7.3 KiB
JSON
212 lines
7.3 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": "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.\"",
|
|
// Use 'postCreateCommand' to run commands after the container is created.
|
|
// 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",
|
|
"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"
|
|
}
|