mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-21 21:50:49 +02:00
fully dockerized development with VS-code devcontainers (#524)
Co-authored-by: bll <bll@tgw-group.com>
This commit is contained in:
parent
ff2c8e6614
commit
3e98486190
2 changed files with 133 additions and 0 deletions
57
.devcontainer/devcontainer.json
Normal file
57
.devcontainer/devcontainer.json
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
// {
|
||||||
|
// "name": "LibreChat_dev",
|
||||||
|
// // Update the 'dockerComposeFile' list if you have more compose files or use different names.
|
||||||
|
// "dockerComposeFile": "docker-compose.yml",
|
||||||
|
// // The 'service' property is the name of the service for the container that VS Code should
|
||||||
|
// // use. Update this value and .devcontainer/docker-compose.yml to the real service name.
|
||||||
|
// "service": "librechat",
|
||||||
|
// // The 'workspaceFolder' property is the path VS Code should open by default when
|
||||||
|
// // connected. Corresponds to a volume mount in .devcontainer/docker-compose.yml
|
||||||
|
// "workspaceFolder": "/workspace"
|
||||||
|
// //,
|
||||||
|
// // // Set *default* container specific settings.json values on container create.
|
||||||
|
// // "settings": {},
|
||||||
|
// // // Add the IDs of extensions you want installed when the container is created.
|
||||||
|
// // "extensions": [],
|
||||||
|
// // Uncomment the next line if you want to keep your containers running after VS Code shuts down.
|
||||||
|
// // "shutdownAction": "none",
|
||||||
|
// // Uncomment the next line to use 'postCreateCommand' to run commands after the container is created.
|
||||||
|
// // "postCreateCommand": "uname -a",
|
||||||
|
// // Comment out to connect as root instead. To add a non-root user, see: https://aka.ms/vscode-remote/containers/non-root.
|
||||||
|
// // "remoteUser": "vscode"
|
||||||
|
// }
|
||||||
|
{
|
||||||
|
// "name": "LibreChat_dev",
|
||||||
|
"dockerComposeFile": "docker-compose.yml",
|
||||||
|
"service": "app",
|
||||||
|
// "image": "node:19-alpine",
|
||||||
|
// "workspaceFolder": "/workspaces",
|
||||||
|
"workspaceFolder": "/workspace",
|
||||||
|
// Set *default* container specific settings.json values on container create.
|
||||||
|
// "overrideCommand": true,
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"extensions": [],
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.profiles.linux": {
|
||||||
|
"bash": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"postCreateCommand": ""
|
||||||
|
// "workspaceMount": "src=${localWorkspaceFolder},dst=/code,type=bind,consistency=cached"
|
||||||
|
|
||||||
|
// "runArgs": [
|
||||||
|
// "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined",
|
||||||
|
// "-v", "/tmp/.X11-unix:/tmp/.X11-unix",
|
||||||
|
// "-v", "${env:XAUTHORITY}:/root/.Xauthority:rw",
|
||||||
|
// "-v", "/home/${env:USER}/.cdh:/root/.cdh",
|
||||||
|
// "-e", "DISPLAY=${env:DISPLAY}",
|
||||||
|
// "--name=tgw_assistant_backend_dev",
|
||||||
|
// "--network=host"
|
||||||
|
// ],
|
||||||
|
// "settings": {
|
||||||
|
// "terminal.integrated.shell.linux": "/bin/bash"
|
||||||
|
// },
|
||||||
|
}
|
76
.devcontainer/docker-compose.yml
Normal file
76
.devcontainer/docker-compose.yml
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
version: '3.4'
|
||||||
|
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
# container_name: LibreChat_dev
|
||||||
|
image: node:19-alpine
|
||||||
|
# Using a Dockerfile is optional, but included for completeness.
|
||||||
|
# build:
|
||||||
|
# context: .
|
||||||
|
# dockerfile: Dockerfile
|
||||||
|
# # [Optional] You can use build args to set options. e.g. 'VARIANT' below affects the image in the Dockerfile
|
||||||
|
# args:
|
||||||
|
# VARIANT: buster
|
||||||
|
network_mode: "host"
|
||||||
|
# ports:
|
||||||
|
# - 3080:3080 # Change it to 9000:3080 to use nginx
|
||||||
|
extra_hosts: # if you are running APIs on docker you need access to, you will need to uncomment this line and next
|
||||||
|
- "host.docker.internal:host-gateway"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
# # This is where VS Code should expect to find your project's source code and the value of "workspaceFolder" in .devcontainer/devcontainer.json
|
||||||
|
- ..:/workspace:cached
|
||||||
|
# # - /app/client/node_modules
|
||||||
|
# # - ./api:/app/api
|
||||||
|
# # - ./.env:/app/.env
|
||||||
|
# # - ./.env.development:/app/.env.development
|
||||||
|
# # - ./.env.production:/app/.env.production
|
||||||
|
# # - /app/api/node_modules
|
||||||
|
|
||||||
|
# # Uncomment the next line to use Docker from inside the container. See https://aka.ms/vscode-remote/samples/docker-from-docker-compose for details.
|
||||||
|
# # - /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
|
||||||
|
# Runs app on the same network as the service container, allows "forwardPorts" in devcontainer.json function.
|
||||||
|
# network_mode: service:another-service
|
||||||
|
|
||||||
|
# Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
|
||||||
|
# (Adding the "ports" property to this file will not forward from a Codespace.)
|
||||||
|
|
||||||
|
# Uncomment the next line to use a non-root user for all processes - See https://aka.ms/vscode-remote/containers/non-root for details.
|
||||||
|
# user: vscode
|
||||||
|
|
||||||
|
# Uncomment the next four lines if you will use a ptrace-based debugger like C++, Go, and Rust.
|
||||||
|
# cap_add:
|
||||||
|
# - SYS_PTRACE
|
||||||
|
# security_opt:
|
||||||
|
# - seccomp:unconfined
|
||||||
|
|
||||||
|
# Overrides default command so things don't shut down after the process ends.
|
||||||
|
command: /bin/sh -c "while sleep 1000; do :; done"
|
||||||
|
|
||||||
|
mongodb:
|
||||||
|
container_name: chat-mongodb
|
||||||
|
network_mode: "host"
|
||||||
|
# ports:
|
||||||
|
# - 27018:27017
|
||||||
|
image: mongo
|
||||||
|
# restart: always
|
||||||
|
volumes:
|
||||||
|
- ./data-node:/data/db
|
||||||
|
command: mongod --noauth
|
||||||
|
meilisearch:
|
||||||
|
container_name: chat-meilisearch
|
||||||
|
image: getmeili/meilisearch:v1.0
|
||||||
|
network_mode: "host"
|
||||||
|
# ports:
|
||||||
|
# - 7700:7700
|
||||||
|
# env_file:
|
||||||
|
# - .env
|
||||||
|
environment:
|
||||||
|
- SEARCH=false
|
||||||
|
- MEILI_HOST=http://0.0.0.0:7700
|
||||||
|
- MEILI_HTTP_ADDR=0.0.0.0:7700
|
||||||
|
- MEILI_MASTER_KEY=5c71cf56d672d009e36070b5bc5e47b743535ae55c818ae3b735bb6ebfb4ba63
|
||||||
|
volumes:
|
||||||
|
- ./meili_data:/meili_data
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue