sha256:abf3ce53a8eb986388bd927f37725b28996465be697276b294eedd0e69dbae5c
Last pushed
5 months by inspectorgadget12
Type
Compose
Manifest digest
sha256:abf3ce53a8eb986388bd927f37725b28996465be697276b294eedd0e69dbae5c
##################################################################################################
# This Compose file is intended to run a Labspace. It can be run with the following:
#
# CONTENT_REPO_URL=https://github.com/username/labspace-content-repo docker compose -f compose.run.yaml up
##################################################################################################
services:
configurator:
image: dockersamples/labspace-configurator:v0.25.2
use_api_socket: true
volumes:
- labspace-content:/project
- labspace-instructions:/instructions
- docker-creds:/docker-creds
- labspace-support:/etc/labspace-support
interface:
image: dockersamples/labspace-interface:v0.25.2
ports:
- "3030:3030"
volumes:
- labspace-instructions:/labspace/instructions:ro
- type: volume
source: labspace-support
target: /etc/labspace-support/private-key
volume:
subpath: private-key
- type: volume
source: labspace-support
target: /etc/labspace-support/socket
volume:
subpath: socket
- type: volume
source: labspace-support
target: /etc/labspace-support/metadata
volume:
subpath: metadata
depends_on:
workspace:
condition: service_started
configurator:
condition: service_completed_successfully
restart: unless-stopped
workspace:
image: dockersamples/labspace-workspace-node:v0.25.2
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
- labspace-content:/home/coder/project
- docker-creds:/docker-creds
- type: volume
source: labspace-support
target: /etc/labspace-support/public-key
volume:
subpath: public-key
- type: volume
source: labspace-support
target: /etc/labspace-support/socket
volume:
subpath: socket
host-republisher:
image: dockersamples/labspace-host-port-republisher:v0.25.2
pull_policy: always
restart: always
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:v0.25.2
pull_policy: always
volumes:
- socket-proxy:/var/run
environment:
LABEL_FILTER: labspace-resource=true
depends_on:
- socket-proxy
socket-proxy:
image: mikesir87/docker-socket-proxy:v1.3.1
volumes:
- socket-proxy:/tmp/proxy
- /var/run/docker.sock:/var/run/docker.sock
configs:
- source: docker-proxy-config-labels
target: /etc/docker-socket-proxy/config.d/add-and-require-labels.yaml
- source: docker-proxy-mount-remap
target: /etc/docker-socket-proxy/config.d/mount-path-remap.yaml
- source: docker-proxy-mount-allowlist
target: /etc/docker-socket-proxy/config.d/mount-path-allowlist.yaml
- source: docker-proxy-forward-proxied-socket
target: /etc/docker-socket-proxy/config.d/forward-proxied-socket.yaml
- source: docker-proxy-add-to-labspace-network
target: /etc/docker-socket-proxy/config.d/add-to-labspace-network.yaml
environment:
DEBUG_LOGS: "true"
LISTEN_SOCKET_PATH: /tmp/proxy/docker.sock
volumes:
socket-proxy:
name: labspace-socket-proxy
labspace-content:
name: labspace-content
labspace-instructions:
docker-creds:
labspace-support:
networks:
default:
name: labspace
configs:
docker-proxy-config-labels:
content: |
mutators:
# Add labels to all newly created objects
- type: addLabels
labels:
labspace-resource: "true"
responseFilters:
# Only return objects with the labels we mutated on
- type: labelFilter
objectsToFilter:
- containers
- volumes
- networks
requiredLabels:
labspace-resource: "true"
docker-proxy-mount-remap:
content: |
# Remap the project directory to the labspace content volume, since the project
# is running out of a volume.
mutators:
- type: mountPath
from: /home/coder/project
to: labspace-content
docker-proxy-mount-allowlist:
content: |
gates:
- type: mountSource
allowedSources:
- labspace-content
- labspace-socket-proxy
- buildx_buildkit_default_state
- label:labspace-resource=true
docker-proxy-forward-proxied-socket:
content: |
# If requests to use the Docker Socket are used (such as Testcontainers),
# use the proxied one to ensure permissions, remappings, etc. are applied
mutators:
- type: mountPath
from: /var/run/docker.sock
to: labspace-socket-proxy/docker.sock
docker-proxy-add-to-labspace-network:
content: |
mutators:
- type: addToNetwork
networks:
- labspace
services:
configurator:
environment:
PROJECT_CLONE_URL: https://github.com/InspectorGadget/docker-basics-labspace-s1
workspace:
image: dockersamples/labspace-workspace-base
configs:
project_source_tar:
content: |
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
services:
configurator:
configs:
- source: project_source_tar
target: /etc/labspace-support/content.tar.base64
environment:
PROJECT_TAR_PATH: /etc/labspace-support/content.tar.base64
docker compose -f oci://inspectorgadget12/docker-kl-s1:latest upUse the above command to pull and run the Compose file. Learn more.