Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,14 @@ To run and debug your app locally:

5. **Access your app**: Once the container is running, you can access it at `localhost:<port>` where `<port>` is the port you specified in your configuration (e.g., `localhost:8888` for Jupyter, `localhost:7681` for ttyd)

## Container Resource Limits

Memory and shared memory limits are automatically configured to prevent OOM conditions on the host VM.

**Memory Limit**: Reserves 10% of total memory for the host, floored at 1GB and capped at 4GB. Container gets the remainder.

**Shared Memory**: Default is 64m. Override via `shm-size` metadata.

## How to use

The `.devcontainer.json` file in the custom app folder (e.g. r-analysis/) contains the custom app configuration.
Expand Down
5 changes: 5 additions & 0 deletions src/aou-sas/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
}
}
1 change: 1 addition & 0 deletions src/aou-sas/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
build:
context: .
additional_contexts:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
},
"platforms": ["Any"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
build:
context: .
additional_contexts:
Expand Down
5 changes: 5 additions & 0 deletions src/example/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
}
}
1 change: 1 addition & 0 deletions src/example/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
# The container name must be "application-server"
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
# This can be either a pre-existing image or built from a Dockerfile
image: "quay.io/jupyter/base-notebook"
# build:
Expand Down
5 changes: 5 additions & 0 deletions src/jupyter-aou/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
},
"platforms": ["Any"]
Expand Down
1 change: 1 addition & 0 deletions src/jupyter-aou/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
build:
context: .
additional_contexts:
Expand Down
5 changes: 5 additions & 0 deletions src/jupyter-template/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
},
"platforms": ["Any"]
Expand Down
1 change: 1 addition & 0 deletions src/jupyter-template/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
image: "${templateOption:containerImage}"
user: "jupyter"
restart: always
Expand Down
5 changes: 5 additions & 0 deletions src/nemo_jupyter/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
},
"platforms": ["Any"]
Expand Down
1 change: 1 addition & 0 deletions src/nemo_jupyter/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
build:
context: .
target: nemo
Expand Down
5 changes: 5 additions & 0 deletions src/nemo_jupyter_aou/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
},
"platforms": ["Any"]
Expand Down
1 change: 1 addition & 0 deletions src/nemo_jupyter_aou/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
build:
context: ../nemo_jupyter
additional_contexts:
Expand Down
5 changes: 5 additions & 0 deletions src/pgweb/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
}
}
1 change: 1 addition & 0 deletions src/pgweb/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
# The container name must be "application-server"
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
# This can be either a pre-existing image or built from a Dockerfile
build:
context: .
Expand Down
5 changes: 5 additions & 0 deletions src/playground/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
}
}
1 change: 1 addition & 0 deletions src/playground/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
# The container name must be "application-server"
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
image: "caddy:2.11-alpine"
restart: always
volumes:
Expand Down
5 changes: 5 additions & 0 deletions src/r-analysis-aou/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
},
"platforms": ["Any"]
Expand Down
1 change: 1 addition & 0 deletions src/r-analysis-aou/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
build:
context: .
additional_contexts:
Expand Down
5 changes: 5 additions & 0 deletions src/r-analysis/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
},
"platforms": ["Any"]
Expand Down
1 change: 1 addition & 0 deletions src/r-analysis/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
image: "ghcr.io/rocker-org/devcontainer/tidyverse@sha256:3a9ecbed900f17da528cdb17c3ddc43045fc9b4be7dbd8c61cb7b8a6439bfa6b"
restart: always
volumes:
Expand Down
10 changes: 9 additions & 1 deletion src/test-app-secrets/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@
"options": {
"cloud": {
"type": "string",
"enum": ["gcp", "aws"],
"enum": [
"gcp",
"aws"
],
"default": "gcp",
"description": "Cloud provider (gcp or aws)"
},
Expand All @@ -20,6 +23,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
}
}
1 change: 1 addition & 0 deletions src/test-app-secrets/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
build:
context: .
additional_contexts:
Expand Down
5 changes: 5 additions & 0 deletions src/test-app/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
}
}
1 change: 1 addition & 0 deletions src/test-app/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
# The container name must be "application-server"
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
# This can be either a pre-existing image or built from a Dockerfile
image: "docker/getting-started"
# build:
Expand Down
5 changes: 5 additions & 0 deletions src/ubuntu-example/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
}
}
1 change: 1 addition & 0 deletions src/ubuntu-example/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
# The container name must be "application-server"
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
# This can be either a pre-existing image or built from a Dockerfile
image: "mcr.microsoft.com/devcontainers/base:ubuntu-24.04"
# build:
Expand Down
5 changes: 5 additions & 0 deletions src/vscode-docker/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
},
"platforms": ["Any"]
Expand Down
1 change: 1 addition & 0 deletions src/vscode-docker/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
build:
context: .
dockerfile: Dockerfile
Expand Down
5 changes: 5 additions & 0 deletions src/vscode-with-llm/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
},
"platforms": ["Any"]
Expand Down
1 change: 1 addition & 0 deletions src/vscode-with-llm/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
build:
context: .
dockerfile: Dockerfile
Expand Down
5 changes: 5 additions & 0 deletions src/vscode/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
},
"platforms": ["Any"]
Expand Down
1 change: 1 addition & 0 deletions src/vscode/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
build:
context: .
dockerfile: Dockerfile
Expand Down
5 changes: 5 additions & 0 deletions src/workbench-jupyter-docker/devcontainer-template.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
},
"platforms": ["Any"]
Expand Down
1 change: 1 addition & 0 deletions src/workbench-jupyter-docker/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ services:
app:
container_name: "application-server"
shm_size: "${templateOption:shmSize}"
mem_limit: "${templateOption:memoryLimit}"
image: "us-central1-docker.pkg.dev/verily-workbench-public/apps/workbench-jupyter:latest"
user: "jupyter:${DOCKER_GID}"
restart: always
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@
"type": "string",
"description": "Shared memory size for the application-server container",
"default": "64m"
},
"memoryLimit": {
"type": "string",
"description": "Memory limit for the application-server container",
"default": "8192m"
}
},
"platforms": ["Any"]
Expand Down
Loading
Loading