From 104dc9a08ec2a63f7512dcfffd9dc2072d5e2a57 Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Sun, 30 Jun 2024 17:16:47 -0400 Subject: [PATCH] refactor: Add Docker and Docker Compose installation to devcontainer setup --- .devcontainer/Dockerfile | 13 ++++++++++++- .devcontainer/devcontainer.json | 17 ++++++++++------- .devcontainer/docker-compose.yml | 1 + 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 7f5566fb97..4622b4e5b1 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,16 @@ FROM node:18-bullseye -RUN useradd -m -s /bin/bash vscode +RUN apt-get update && apt-get install -y sudo +RUN useradd -m -s /bin/bash vscode && echo "vscode ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/vscode RUN mkdir -p /workspaces && chown -R vscode:vscode /workspaces WORKDIR /workspaces + +# Install Docker and Docker Compose +RUN apt-get update && \ + apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release && \ + curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \ + echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \ + apt-get update && \ + apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin + +USER vscode diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index a3bb780550..389e181070 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,18 +1,21 @@ { + "name": "LibreChat Development", "dockerComposeFile": "docker-compose.yml", "service": "app", "workspaceFolder": "/workspaces", "customizations": { "vscode": { - "extensions": [], + "extensions": ["ms-azuretools.vscode-docker"], "settings": { - "terminal.integrated.profiles.linux": { - "bash": null - } + "terminal.integrated.defaultProfile.linux": "bash" } } }, - "postCreateCommand": "", - "features": { "ghcr.io/devcontainers/features/git:1": {} }, - "remoteUser": "vscode" + "postCreateCommand": "sudo apt-get update && sudo apt-get install -y docker.io docker-compose", + "features": { + "ghcr.io/devcontainers/features/git:1": {}, + "ghcr.io/devcontainers/features/docker-in-docker:2": {} + }, + "remoteUser": "vscode", + "forwardPorts": [3080, 27017, 7700] } diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 277ac84f85..825f26a60e 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -17,6 +17,7 @@ services: volumes: # This is where VS Code should expect to find your project's source code and the value of "workspaceFolder" in .devcontainer/devcontainer.json - ..:/workspaces:cached + - /var/run/docker.sock:/var/run/docker.sock # 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 environment: