2
0

devcontainer.md 1.5 KB

Devcontainer Environment

Service Connectivity

This project runs inside a devcontainer defined in .devcontainer/compose.yml. The Docker Compose services are always accessible by hostname — do NOT run connectivity checks (ping, nc, node net.connect, etc.) before using them.

Service Hostname Port Notes
MongoDB mongo 27017 Replica set rs0; required for transactions and change streams
Elasticsearch elasticsearch 9200 Full-text search

MongoDB

Connection string (already in apps/app/.env.development):

mongodb://mongo:27017/growi?replicaSet=rs0

mongosh is not installed in the devcontainer (app service). To run ad-hoc queries from the devcontainer, use the bundled MongoDB driver via Node.js:

node -e "
const { MongoClient } = require('/workspace/growi-vault/node_modules/.pnpm/mongodb@6.8.0_@aws-sdk+credential-providers@3.600.0_@aws-sdk+client-sso-oidc@3.600.0__socks@2.8.3/node_modules/mongodb');
async function main() {
  const client = new MongoClient('mongodb://mongo:27017/growi?replicaSet=rs0');
  await client.connect();
  const db = client.db('growi');
  // ... your query here ...
  await client.close();
}
main().catch(console.error);
"

Smoke Testing the App

The development server can always be started in the devcontainer for smoke and integration verification. Never claim the runtime environment is unavailable.

See apps/app/.claude/skills/app-commands/SKILL.mdSmoke Testing section for the full workflow.