From 8b33e316ab9a4ab4f8b2058f900d11db74c47ebe Mon Sep 17 00:00:00 2001 From: Mrugesh Mohapatra <1884376+raisedadead@users.noreply.github.com> Date: Thu, 7 Aug 2025 01:34:30 +0530 Subject: [PATCH] feat: add devcontainer setup (#61695) --- .devcontainer/devcontainer.json | 8 ++++++++ .devcontainer/docker-compose.yml | 31 +++++++++++++++++++++++++++++++ 2 files changed, 39 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..6be8840971c --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,8 @@ +{ + "name": "freeCodeCampDC", + "dockerComposeFile": "docker-compose.yml", + "service": "devcontainer", + "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", + // "features": {}, + "forwardPorts": [3000, 8000] +} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 00000000000..f55103a923f --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,31 @@ +services: + devcontainer: + depends_on: + - mongo-db + - mongo-setup + image: mcr.microsoft.com/devcontainers/typescript-node:22 + volumes: + - ../..:/workspaces:cached + network_mode: service:mongo-db + command: sleep infinity + + mongo-db: + image: mongo + command: mongod --replSet rs0 + restart: unless-stopped + volumes: + - mongodb-data:/data/db + mongo-setup: + image: mongo + depends_on: + - mongo-db + restart: on-failure + entrypoint: [ + 'bash', + '-c', + # This will try to initiate the replica set, until it succeeds twice (i.e. until the replica set is already initialized) + 'mongosh --host mongo-db:27017 --eval ''try {rs.initiate();} catch (err) { if(err.codeName !== "AlreadyInitialized") throw err };''' + ] + +volumes: + mongodb-data: