From c73d71bc7894e44291d31cfa6917e4f1406cab98 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Wed, 22 Nov 2023 08:49:36 +0000 Subject: [PATCH 1/3] chore: add devcontainer config --- .devcontainer/devcontainer.json | 43 ++++++++++++++++++++++++++ .devcontainer/docker-compose.yml | 52 ++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 .devcontainer/devcontainer.json create mode 100644 .devcontainer/docker-compose.yml diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000000..f907c97be27 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,43 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +// README at: https://github.com/devcontainers/templates/tree/main/src/docker-existing-docker-compose +{ + "name": "Existing Docker Compose (Extend)", + + // Update the 'dockerComposeFile' list if you have more compose files or use different names. + // The .devcontainer/docker-compose.yml file contains any overrides you need/want to make. + "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": "devcontainer", + + // The optional 'workspaceFolder' property is the path VS Code should open by default when + // connected. This is typically a file mount in .devcontainer/docker-compose.yml + "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", + "features": { + "ghcr.io/devcontainers/features/github-cli:1": {} + } + + // Features to add to the dev container. More info: https://containers.dev/features. + // "features": {}, + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Uncomment the next line if you want start specific services in your Docker Compose config. + // "runServices": [], + + // Uncomment the next line if you want to keep your containers running after VS Code shuts down. + // "shutdownAction": "none", + + // Uncomment the next line to run commands after the container is created. + // "postCreateCommand": "cat /etc/os-release", + + // Configure tool-specific properties. + // "customizations": {}, + + // Uncomment to connect as an existing user other than the container default. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "devcontainer" +} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 00000000000..23371d63406 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,52 @@ +version: '3.5' +services: + # Update this to the name of the service you want to work with in your docker-compose.yml file + devcontainer: + # Uncomment if you want to override the service's Dockerfile to one in the .devcontainer + # folder. Note that the path of the Dockerfile and context is relative to the *primary* + # docker-compose.yml file (the first in the devcontainer.json "dockerComposeFile" + # array). The sample below assumes your primary file is in the root of your project. + # + # build: + # context: . + # dockerfile: .devcontainer/Dockerfile + + volumes: + # Update this to wherever you want VS Code to mount the folder of your project + - ..:/workspaces:cached + + # 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" + + # Database + mongo: + image: mongo:4 + restart: on-failure + volumes: + - data:/data/db + + # Data cache and Transporter + redis: + image: redis:alpine + restart: on-failure + + # Persist Storage + minio: + image: minio/minio + restart: on-failure + environment: + MINIO_ROOT_USER: tailchat + MINIO_ROOT_PASSWORD: com.msgbyte.tailchat + volumes: + - storage:/data + command: minio server /data --console-address ":9001" + +volumes: + data: + storage: From 766d792006136bcd99757fb6902112823c6e7943 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Wed, 22 Nov 2023 09:10:27 +0000 Subject: [PATCH 2/3] chore: add docker file --- .devcontainer/Dockerfile | 15 +++++++++++++++ .devcontainer/docker-compose.yml | 6 +++--- 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 .devcontainer/Dockerfile diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 00000000000..34a19aed25d --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,15 @@ +FROM mcr.microsoft.com/devcontainers/javascript-node:1-18-bullseye + +# [Optional] Uncomment this section to install additional OS packages. +RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ + && apt-get -y install --no-install-recommends iputils-ping + +RUN wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /usr/local/bin/mc +RUN chmod +x /usr/local/bin/mc + +# [Optional] Uncomment if you want to install an additional version of node using nvm +ARG EXTRA_NODE_VERSION=18 +RUN su node -c "source /usr/local/share/nvm/nvm.sh && nvm install ${EXTRA_NODE_VERSION}" + +# [Optional] Uncomment if you want to install more global node modules +# RUN su node -c "npm install -g " diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 23371d63406..6410edcf1c7 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -7,9 +7,9 @@ services: # docker-compose.yml file (the first in the devcontainer.json "dockerComposeFile" # array). The sample below assumes your primary file is in the root of your project. # - # build: - # context: . - # dockerfile: .devcontainer/Dockerfile + build: + context: . + dockerfile: ./Dockerfile volumes: # Update this to wherever you want VS Code to mount the folder of your project From 216923d76b2161556daf06673139ba4926eb7b37 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Fri, 1 Dec 2023 16:46:38 +0000 Subject: [PATCH 3/3] chore(devcontainer): add env and more config --- .devcontainer/devcontainer.json | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f907c97be27..a761b36d445 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,7 +1,7 @@ // For format details, see https://aka.ms/devcontainer.json. For config options, see the // README at: https://github.com/devcontainers/templates/tree/main/src/docker-existing-docker-compose { - "name": "Existing Docker Compose (Extend)", + "name": "Tailchat Devcontainer", // Update the 'dockerComposeFile' list if you have more compose files or use different names. // The .devcontainer/docker-compose.yml file contains any overrides you need/want to make. @@ -18,13 +18,23 @@ "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", "features": { "ghcr.io/devcontainers/features/github-cli:1": {} - } + }, + "containerEnv": { + "TRANSPORTER": "redis://redis:6379", + "REDIS_URL": "redis://redis:6379", + "MONGO_URL": "mongodb://mongo/tailchat", + "MINIO_URL": "minio:9000", + "MINIO_USER": "tailchat", + "MINIO_PASS": "com.msgbyte.tailchat", + "ADMIN_USER": "tailchat", + "ADMIN_PASS": "tailchat" + }, // Features to add to the dev container. More info: https://containers.dev/features. // "features": {}, // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], + "forwardPorts": [11011, 11000], // Uncomment the next line if you want start specific services in your Docker Compose config. // "runServices": [], @@ -33,10 +43,20 @@ // "shutdownAction": "none", // Uncomment the next line to run commands after the container is created. - // "postCreateCommand": "cat /etc/os-release", + "postCreateCommand": "pnpm install", // Configure tool-specific properties. - // "customizations": {}, + "customizations": { + "vscode": { + "extensions": [ + "maattdd.gitless", + "esbenp.prettier-vscode", + "njzy.stats-bar", + "bradlc.vscode-tailwindcss", + "dbaeumer.vscode-eslint" + ] + } + }, // Uncomment to connect as an existing user other than the container default. More info: https://aka.ms/dev-containers-non-root. // "remoteUser": "devcontainer"