sha256:e5dee58022ab8bdef9234ad65b8c752f311a0dcc674a79afb3d09d3a1057dfe4
Last pushed
10 months by michaelirwin244
Type
Compose
Manifest digest
sha256:e5dee58022ab8bdef9234ad65b8c752f311a0dcc674a79afb3d09d3a1057dfe4
##################################################################################################
# This Compose file is intended to be used in the development of Labspace content.
#
# Set $CONTENT_PATH to point to the path of your Labspace content (e.g. ./content)
##################################################################################################
services:
configurator:
image: dockersamples/labspace-configurator:latest
use_api_socket: true
volumes:
- content:/project
- ${CONTENT_PATH}:/staging
- docker-creds:/docker-creds
- support-vscode-extension:/etc/support-extension
environment:
DEV_MODE: true
interface:
image: dockersamples/labspace-interface:latest
ports:
- "3030:3030"
volumes:
- ${CONTENT_PATH}:/project
- type: volume
source: support-vscode-extension
target: /etc/cmd-executor/private-key
volume:
subpath: private-key
- type: volume
source: support-vscode-extension
target: /etc/cmd-executor/socket
volume:
subpath: socket
environment:
CONTENT_DEV_MODE: true
depends_on:
workspace:
condition: service_started
configurator:
condition: service_completed_successfully
restart: unless-stopped
workspace:
image: dockersamples/labspace-workspace-node:latest
depends_on:
configurator:
condition: service_completed_successfully
socket-proxy:
condition: service_started
ports:
- 8085:8085 # For the IDE itself
- 3000:3000 # For the Node application running in the IDE
volumes:
- socket-proxy:/var/run
- ${CONTENT_PATH}:/home/coder/project
- docker-creds:/docker-creds
- type: volume
source: support-vscode-extension
target: /etc/cmd-executor/public-key
volume:
subpath: public-key
- type: volume
source: support-vscode-extension
target: /etc/cmd-executor/socket
volume:
subpath: socket
configs:
- source: workspace-settings
target: /home/coder/.local/share/code-server/User/settings.json
uid: "1000"
gid: "1000"
host-republisher:
image: dockersamples/labspace-host-port-republisher:latest
volumes:
- socket-proxy:/var/run
network_mode: service:workspace
environment:
LABEL_FILTER: labspace-resource=true
depends_on:
- workspace
- socket-proxy
workspace-cleaner:
image: dockersamples/labspace-cleaner:latest
volumes:
- socket-proxy:/var/run
environment:
LABEL_FILTER: labspace-resource=true
depends_on:
- socket-proxy
socket-proxy:
image: mikesir87/docker-socket-proxy:v1.2.2
volumes:
- socket-proxy:/tmp/proxy
- /var/run/docker.sock:/var/run/docker.sock
environment:
DEBUG_LOGS: "true"
CONFIG_DATA: |
mutators:
# Remap the project directory to the labspace content volume, since the project
# is running out of a volume.
- type: mountPath
from: /home/coder/project
to: ${CONTENT_PATH}
# If requests to use the Docker Socket are used (such as Testcontainers),
# use the proxied one to ensure permissions, remappings, etc. are applied
- type: mountPath
from: /var/run/docker.sock
to: labspace-socket-proxy/docker.sock
# Add labels to all newly created objects
- type: addLabels
labels:
labspace-resource: "true"
- type: addToNetwork
networks:
- labspace
# gates:
# - type: mountSource
# allowedSources:
# - labspace-content
# - labspace-socket-proxy
# - buildx_buildkit_default_state
# - ${CONTENT_PATH}
responseFilters:
# Only return objects with the labels we mutated on
- type: labelFilter
objectsToFilter:
- containers
- volumes
- networks
requiredLabels:
labspace-resource: "true"
LISTEN_SOCKET_PATH: /tmp/proxy/docker.sock
volumes:
socket-proxy:
name: labspace-socket-proxy
content:
name: labspace-content
docker-creds:
support-vscode-extension:
networks:
default:
name: labspace
configs:
# Show the .labspace directory during content development to make it easier to edit from
# inside the Labspace environment
workspace-settings:
content: |
{
"remote.autoForwardPorts": false,
"security.workspace.trust.enabled": false,
"window.autoDetectColorScheme": true,
"terminal.integrated.env.linux": {
"PATH": "$${env:PATH}"
}
}docker compose -f oci://michaelirwin244/labspace-content-dev:latest upUse the above command to pull and run the Compose file. Learn more.