sha256:b9d7a2c7fe475ef5f807c805d096fa5853566ffbd20c622cdaa990419929165d
Last pushed
5 months by inspectorgadget12
Type
Compose
Manifest digest
sha256:b9d7a2c7fe475ef5f807c805d096fa5853566ffbd20c622cdaa990419929165d
##################################################################################################
# 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-s3
workspace:
image: dockersamples/labspace-workspace-base
configs:
project_source_tar:
content: |
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
AHgAAA==
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-s3:latest upUse the above command to pull and run the Compose file. Learn more.