-
Notifications
You must be signed in to change notification settings - Fork 42
Enhance Docker Compose setup and documentation #332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
61a1846
d5107ad
a1cae1b
8a7e5ed
21fa0db
5dde9a8
a18f26d
c87bf05
924f35b
13c1f2e
a2f7a5d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -94,11 +94,39 @@ This allows developers to deploy production agents that can scale beautifully to | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Quick Start with Docker Compose | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Get Exosphere running locally in under 2 minutes: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ```bash | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Option 1: With cloud MongoDB (recommended) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| echo "MONGO_URI=your-mongodb-connection-string" > .env | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose up -d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Option 2: With local MongoDB (development) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| curl -O https://raw.githubusercontent.com/exospherehost/exospherehost/main/docker-compose/docker-compose-with-mongodb.yml | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| docker compose -f docker-compose-with-mongodb.yml up -d | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ``` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| **Environment Configuration:** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Docker Compose automatically loads `.env` files from the working directory | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - Create your `.env` file in the same directory as your docker-compose file | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > **⚠️ Security Note**: Variables prefixed with `NEXT_PUBLIC_` are embedded in client bundles and visible to browsers. Never store real secrets in `NEXT_PUBLIC_` variables - use server-side environment variables instead. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Access your services: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **Dashboard**: `http://localhost:3000` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **API**: `http://localhost:8000` | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| > **📝 Note**: This configuration is for **development and testing only**. For production deployments, environment variable customization, and advanced configuration options, please read the complete **[Docker Compose Setup Guide](https://docs.exosphere.host/docker-compose-setup)**. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+97
to
+124
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Great Quick Start; tweak .env phrasing and list spacing. Compose loads .env from the working directory (where you run docker compose), not strictly “the same directory as your compose file.” Also add a blank line before the bullet list to satisfy MD032. **Environment Configuration:**
-- Docker Compose automatically loads `.env` files from the working directory
-- Create your `.env` file in the same directory as your docker-compose file
+
+- Docker Compose automatically loads a `.env` file from the working directory (where you run `docker compose`)
+- Create your `.env` file in the same directory where you execute `docker compose`📝 Committable suggestion
Suggested change
🧰 Tools🪛 LanguageTool[grammar] ~97-~97: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~99-~99: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~112-~112: There might be a mistake here. (QB_NEW_EN) [grammar] ~113-~113: There might be a mistake here. (QB_NEW_EN_OTHER) [grammar] ~114-~114: There might be a mistake here. (QB_NEW_EN_OTHER) [typographical] ~116-~116: To join two clauses or set off examples, consider using an em dash. (QB_NEW_EN_DASH_RULE_EM) [grammar] ~116-~116: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~118-~118: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~120-~120: There might be a mistake here. (QB_NEW_EN) [grammar] ~121-~121: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) [grammar] ~123-~123: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) 🪛 markdownlint-cli2 (0.17.2)113-113: Lists should be surrounded by blank lines (MD032, blanks-around-lists) 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ## Documentation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| For comprehensive documentation and guides, check out: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **[Docker Compose Setup](https://docs.exosphere.host/docker-compose-setup)**: Complete guide for running Exosphere locally with Docker Compose. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
coderabbitai[bot] marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **[Getting Started Guide](https://docs.exosphere.host/getting-started)** | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **[State Manager Setup Guide](https://docs.exosphere.host/exosphere/state-manager-setup)**: Step-by-step instructions for running the Exosphere backend locally or in production. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - **[Dashboard Guide](https://docs.exosphere.host/exosphere/dashboard)**: Learn how to set up and use the Exosphere web dashboard. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -66,7 +66,7 @@ NEXT_PUBLIC_DEV_MODE=true | |||||
| npm run dev | ||||||
| ``` | ||||||
|
|
||||||
| 5. **Open your browser** and navigate to [http://localhost:3000](http://localhost:3000) | ||||||
| 5. **Open your browser** and navigate to `http://localhost:3000` | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Fix ordered list numbering to satisfy markdownlint (MD029). Use “1.” style for all items in ordered lists. -5. **Open your browser** and navigate to `http://localhost:3000`
+1. **Open your browser** and navigate to `http://localhost:3000`📝 Committable suggestion
Suggested change
🧰 Tools🪛 LanguageTool[grammar] ~69-~69: Use correct spacing (QB_NEW_EN_OTHER_ERROR_IDS_5) 🪛 markdownlint-cli2 (0.17.2)69-69: Ordered list item prefix (MD029, ol-prefix) 🤖 Prompt for AI Agents |
||||||
|
|
||||||
| ### Environment Configuration | ||||||
|
|
||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| # Exosphere Docker Compose Setup | ||
|
|
||
| This directory contains Docker Compose files for running Exosphere locally. | ||
| For detailed setup instructions, please refer to the **[Docker Compose Setup Guide](https://docs.exosphere.host/docker-compose-setup)** in our official documentation. | ||
NiveditJain marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,77 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||
| services: | ||||||||||||||||||||||||||||||||||||||||||||||||
| mongodb: | ||||||||||||||||||||||||||||||||||||||||||||||||
| image: mongo:7.0 | ||||||||||||||||||||||||||||||||||||||||||||||||
| container_name: exosphere-mongodb | ||||||||||||||||||||||||||||||||||||||||||||||||
| restart: unless-stopped | ||||||||||||||||||||||||||||||||||||||||||||||||
| environment: | ||||||||||||||||||||||||||||||||||||||||||||||||
| MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME:-admin} | ||||||||||||||||||||||||||||||||||||||||||||||||
| MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD:-password} | ||||||||||||||||||||||||||||||||||||||||||||||||
| MONGO_INITDB_DATABASE: ${MONGO_INITDB_DATABASE:-exosphere} | ||||||||||||||||||||||||||||||||||||||||||||||||
NiveditJain marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||||||||||
| volumes: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - mongodb_data:/data/db | ||||||||||||||||||||||||||||||||||||||||||||||||
| ports: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - "27017:27017" | ||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+12
to
+13
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Consider not publishing MongoDB to the host (optional). For local dev, you usually don’t need 27017 exposed; reduces attack surface. - ports:
- - "27017:27017"
+ # ports:
+ # - "27017:27017" # Uncomment only if you need host access (e.g., MongoDB Compass)📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - exosphere-network | ||||||||||||||||||||||||||||||||||||||||||||||||
coderabbitai[bot] marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||||||||||
| healthcheck: | ||||||||||||||||||||||||||||||||||||||||||||||||
| test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] | ||||||||||||||||||||||||||||||||||||||||||||||||
| interval: 10s | ||||||||||||||||||||||||||||||||||||||||||||||||
| timeout: 5s | ||||||||||||||||||||||||||||||||||||||||||||||||
| retries: 5 | ||||||||||||||||||||||||||||||||||||||||||||||||
| start_period: 30s | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| exosphere-state-manager: | ||||||||||||||||||||||||||||||||||||||||||||||||
| image: ghcr.io/exospherehost/exosphere-state-manager:${EXOSPHERE_TAG:-latest} | ||||||||||||||||||||||||||||||||||||||||||||||||
| pull_policy: always | ||||||||||||||||||||||||||||||||||||||||||||||||
| container_name: exosphere-state-manager | ||||||||||||||||||||||||||||||||||||||||||||||||
| restart: unless-stopped | ||||||||||||||||||||||||||||||||||||||||||||||||
| environment: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - MONGO_URI=${MONGO_URI:-mongodb://admin:password@exosphere-mongodb:27017/} | ||||||||||||||||||||||||||||||||||||||||||||||||
| - STATE_MANAGER_SECRET=${STATE_MANAGER_SECRET:-exosphere@123} | ||||||||||||||||||||||||||||||||||||||||||||||||
| - MONGO_DATABASE_NAME=${MONGO_DATABASE_NAME:-exosphere} | ||||||||||||||||||||||||||||||||||||||||||||||||
| - SECRETS_ENCRYPTION_KEY=${SECRETS_ENCRYPTION_KEY:-YTzpUlBGLSwm-3yKJRJTZnb0_aQuQQHyz64s8qAERVU=} | ||||||||||||||||||||||||||||||||||||||||||||||||
| depends_on: | ||||||||||||||||||||||||||||||||||||||||||||||||
| mongodb: | ||||||||||||||||||||||||||||||||||||||||||||||||
| condition: service_healthy | ||||||||||||||||||||||||||||||||||||||||||||||||
| ports: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - "8000:8000" | ||||||||||||||||||||||||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - exosphere-network | ||||||||||||||||||||||||||||||||||||||||||||||||
NiveditJain marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||||||||||||||||||||||||
| healthcheck: | ||||||||||||||||||||||||||||||||||||||||||||||||
| test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] | ||||||||||||||||||||||||||||||||||||||||||||||||
| interval: 10s | ||||||||||||||||||||||||||||||||||||||||||||||||
| timeout: 5s | ||||||||||||||||||||||||||||||||||||||||||||||||
| retries: 5 | ||||||||||||||||||||||||||||||||||||||||||||||||
| start_period: 30s | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| exosphere-dashboard: | ||||||||||||||||||||||||||||||||||||||||||||||||
| image: ghcr.io/exospherehost/exosphere-dashboard:${EXOSPHERE_TAG:-latest} | ||||||||||||||||||||||||||||||||||||||||||||||||
| pull_policy: always | ||||||||||||||||||||||||||||||||||||||||||||||||
| container_name: exosphere-dashboard | ||||||||||||||||||||||||||||||||||||||||||||||||
| restart: unless-stopped | ||||||||||||||||||||||||||||||||||||||||||||||||
| environment: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - NEXT_PUBLIC_EXOSPHERE_STATE_MANAGER_URL=${NEXT_PUBLIC_EXOSPHERE_STATE_MANAGER_URL:-http://exosphere-state-manager:8000} | ||||||||||||||||||||||||||||||||||||||||||||||||
| - NEXT_PUBLIC_DEFAULT_NAMESPACE=${NEXT_PUBLIC_DEFAULT_NAMESPACE:-default} | ||||||||||||||||||||||||||||||||||||||||||||||||
| - NEXT_PUBLIC_DEFAULT_API_KEY=${NEXT_PUBLIC_DEFAULT_API_KEY} | ||||||||||||||||||||||||||||||||||||||||||||||||
| depends_on: | ||||||||||||||||||||||||||||||||||||||||||||||||
| exosphere-state-manager: | ||||||||||||||||||||||||||||||||||||||||||||||||
| condition: service_healthy | ||||||||||||||||||||||||||||||||||||||||||||||||
| ports: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - "3000:3000" | ||||||||||||||||||||||||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||||||||||||||||||||||||
| - exosphere-network | ||||||||||||||||||||||||||||||||||||||||||||||||
| healthcheck: | ||||||||||||||||||||||||||||||||||||||||||||||||
| test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000', (res) => process.exit(res.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"] | ||||||||||||||||||||||||||||||||||||||||||||||||
| interval: 10s | ||||||||||||||||||||||||||||||||||||||||||||||||
| timeout: 5s | ||||||||||||||||||||||||||||||||||||||||||||||||
| retries: 5 | ||||||||||||||||||||||||||||||||||||||||||||||||
| start_period: 30s | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| volumes: | ||||||||||||||||||||||||||||||||||||||||||||||||
| mongodb_data: | ||||||||||||||||||||||||||||||||||||||||||||||||
| driver: local | ||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||||||||||||||||||||||||
| exosphere-network: | ||||||||||||||||||||||||||||||||||||||||||||||||
| driver: bridge | ||||||||||||||||||||||||||||||||||||||||||||||||
| attachable: true | ||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,49 @@ | ||||||||||||||||||||||||||
| services: | ||||||||||||||||||||||||||
| exosphere-state-manager: | ||||||||||||||||||||||||||
| image: ghcr.io/exospherehost/exosphere-state-manager:${EXOSPHERE_TAG:-latest} | ||||||||||||||||||||||||||
| pull_policy: always | ||||||||||||||||||||||||||
| container_name: exosphere-state-manager | ||||||||||||||||||||||||||
| restart: unless-stopped | ||||||||||||||||||||||||||
| environment: | ||||||||||||||||||||||||||
| - MONGO_URI=${MONGO_URI} | ||||||||||||||||||||||||||
| - STATE_MANAGER_SECRET=${STATE_MANAGER_SECRET:-exosphere@123} | ||||||||||||||||||||||||||
| - MONGO_DATABASE_NAME=${MONGO_DATABASE_NAME:-exosphere} | ||||||||||||||||||||||||||
| - SECRETS_ENCRYPTION_KEY=${SECRETS_ENCRYPTION_KEY:-YTzpUlBGLSwm-3yKJRJTZnb0_aQuQQHyz64s8qAERVU=} | ||||||||||||||||||||||||||
NiveditJain marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||||||||||||
| ports: | ||||||||||||||||||||||||||
| - "8000:8000" | ||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||
| - exosphere-network | ||||||||||||||||||||||||||
| healthcheck: | ||||||||||||||||||||||||||
| test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] | ||||||||||||||||||||||||||
| interval: 10s | ||||||||||||||||||||||||||
| timeout: 5s | ||||||||||||||||||||||||||
| retries: 5 | ||||||||||||||||||||||||||
| start_period: 30s | ||||||||||||||||||||||||||
|
Comment on lines
+16
to
+21
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧹 Nitpick (assertive) Unify healthcheck style with curl (optional). Use CMD-SHELL + curl for clearer errors and parity with other services (if curl exists in the image). - healthcheck:
- test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
+ healthcheck:
+ test: ["CMD-SHELL", "curl -fsS http://localhost:8000/health || exit 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| exosphere-dashboard: | ||||||||||||||||||||||||||
| image: ghcr.io/exospherehost/exosphere-dashboard:${EXOSPHERE_TAG:-latest} | ||||||||||||||||||||||||||
| pull_policy: always | ||||||||||||||||||||||||||
| container_name: exosphere-dashboard | ||||||||||||||||||||||||||
| restart: unless-stopped | ||||||||||||||||||||||||||
| environment: | ||||||||||||||||||||||||||
| - NEXT_PUBLIC_EXOSPHERE_STATE_MANAGER_URL=${NEXT_PUBLIC_EXOSPHERE_STATE_MANAGER_URL:-http://exosphere-state-manager:8000} | ||||||||||||||||||||||||||
| - NEXT_PUBLIC_DEFAULT_NAMESPACE=${NEXT_PUBLIC_DEFAULT_NAMESPACE:-default} | ||||||||||||||||||||||||||
| - NEXT_PUBLIC_DEFAULT_API_KEY=${NEXT_PUBLIC_DEFAULT_API_KEY} | ||||||||||||||||||||||||||
| depends_on: | ||||||||||||||||||||||||||
| exosphere-state-manager: | ||||||||||||||||||||||||||
| condition: service_healthy | ||||||||||||||||||||||||||
| ports: | ||||||||||||||||||||||||||
| - "3000:3000" | ||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||
| - exosphere-network | ||||||||||||||||||||||||||
| healthcheck: | ||||||||||||||||||||||||||
| test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000', (res) => process.exit(res.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"] | ||||||||||||||||||||||||||
| interval: 10s | ||||||||||||||||||||||||||
| timeout: 5s | ||||||||||||||||||||||||||
| retries: 5 | ||||||||||||||||||||||||||
| start_period: 30s | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| networks: | ||||||||||||||||||||||||||
| exosphere-network: | ||||||||||||||||||||||||||
| driver: bridge | ||||||||||||||||||||||||||
| attachable: true | ||||||||||||||||||||||||||
Uh oh!
There was an error while loading. Please reload this page.