sha256:7c91b1b5765ba6d93d2873b0c27493ae405c30dbe0abb4056f3fac798d32ae35
Last pushed
5 months by inspectorgadget12
Type
Compose
Manifest digest
sha256:7c91b1b5765ba6d93d2873b0c27493ae405c30dbe0abb4056f3fac798d32ae35
##################################################################################################
# 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-s4
workspace:
image: dockersamples/labspace-workspace-base
configs:
project_source_tar:
content: |
H4sIAAAAAAAAA+1bW28cyXXWc/+KkhYwqQl7NMPhRTvAGuDNu4QkiiDpFRbyAlPTXeT0qqe73RdR
A8uAX/IQwIjzsECAIEAe85hX/x7/geQn5Dunqrqr50JqN1rFa09JkIbTdTuX+s53TjVjOS4yGagn
D3661kPb392l//v7u333f9se9Hf7+4P+/v7ezt6DXn97e3f/gdj9CfdUt6ooZS7Eg7xKEpWv7nff
859pi6397YfuTE7jj7sGGXhvZ2eV/fuD7cGc/Xf2+zsPRO/jbmN5+zu3/1SVMpSlHHpCROFQhGnw
RuX+m9gvdvBVkVZ5oC5Ulg7FTVROqnE3SKdPTpMiU0GZ5l/K8EaVT8yosSyioPCtK+kpgjQpVVJ+
rfIiSpOheLq30/tc7nheGZWxGopHxzxYPKtkLMXzappVufjLH74Xl6qgEWJnKEyXM1XepvmbKLl5
5IWqCPIoK3nO91jnuZJ5IibpLa8oI1irwMfptEqiQJaqK16kb5W4ztOpKCdKhOpaVnEpxnkEGUSi
5xZlKgL4RDrFlOa7QtxCdDGuorj0o0Qcn11uCZmE+DpXospEchMl7/ibCxVGhZD4K3IlY4Hxfr0d
IbOs63kFNIddF6RyX1gtNLKJQ1bjIzyutXcuy8lQ9HtQqW92ZbTdnYateY5481ZVhfiFOKrXx8aX
zdqnWbXQdvLFae0kfpn6zYxHtX4h0bK5t3nuenDg9qc1oI38bRQoow1yQWiJJ6ryeCgmZZkNnzyJ
00DGk7Qoh097T3v82OzswPSOAnKEWCbe//eR+lm1Gv9XecFHWOMe/N/rA/Nr/B/sA//3dvHfGv8/
QftM/M9//Olf//vPfxL3AIfnmQ41KBZpDDwlKI2jaVTykRaztBLfoaMADgbA21zhRDuAjC5SdDoV
jr0PBMaX4RwCdzoikAnBZzAR/E+KNXIxnolETtWWSNJSL4FvTs+7NjjAQIDdRESAnzwB9mLTgtAF
z8qJLDEj77hotsMTYlAFubB9QEw8A0D7vu95n30mjrCHkgBZzikHuqBHCg9s2KCxEGU0nQG+6PyM
hp43Go0A0hNPh8emrx5cd6V+nmdiqojK1SMj02du6FmKzSuM3KDAM9L6HIkwj0h4iqUFBBVVEqo8
npFEpQomSRqnNzMKVovhcAvRrlwMe65yUpyHgNVz1JgXJjnDUp53iVNVUvibMz78IzcB1kq1KC5M
KfxQ+D7Zx9jQl/Sz0UMtv5BxhrlFESuVicFer6c18iETjn/IhGfgFRkJO7KjR5pK2J/liBXd6Rg/
7XQW5VLvVNCIw9P5gRjUG6r3nsWS3PhdCWdHzMxmPsxRpol3fnr2ZbP/zf7+drf/tNvrDh4Pxe6e
ICYHG5Sq8PZ29Ae9y6bjEMN/+0VPlGX8BfqU0VR90ev2twdiet+g/tyg3tP9+wdtzw/6fIcGaZeH
izGUGJ09BBj98z+ZAw1fbh1lc3xD1wIga+S7QZrndCyABp53lc9wEjAWI9CtUHfbYbxoB6l3Zz3d
HHpxivUZ5BahUMZFKrI8fRuFOIa2X9c9GfD9MLq+BiAmZTMQSLdRuiyVVGGO4n3nQq+jQseNDZKu
8GHSDDTWcmM5ahjxyM44ciBy83YSAYMjlmARKB6v0G69uVXavcvLacxQjGUoZBjC7oXYsIM3zOhm
q0S7HWkkKPlyXdPxhAAzo/RCKSe8dMXVBDLib5beqvy6AvekWEahqFA3U5qJsQs4ERv+igjIkWVL
XKcktpxmMZCTu9FJhFKUVlw80/FMjmOTgdi5Gk3rwFYb4xauVAP/ctyVToSGXV/AKhF2UIdwzztw
DEmSjOEbZYmNwDAYMU1zCuB4kCZ1/O3aJVx/QOcPC21maIOndo4GRku4obzBpn6s69SwkWA2sqqz
Ue2nY9i0NnxjWkoOofiNkIMavEs8usGwWzl75CiKyYL27kJMrVKthMYZCsckJnLTbi1WvFDTMU79
JMoQCuFo+hDZOaSz2ljFaXKDGJwuqsOGeycCwtNAVcTG7373XQFBu2bBS1XS+oX9ufj97zfEe5HN
ykmaDIQ/FdS9W6Zp3Aa3o1jJpMoWoWYq/Otm4Ros2+Zc4QUYPMdQ7HLA9/+aI1PioooVyY/kecpq
87x+F4H0IIZhCgGqOEcYClBEMntC+I6DhdO1FJv4WLIB2zl44W3T/A44g4eGc1zT5KUmluv1UjGR
eRikIZzz9NyCE4LtgOY7XoScL5pgYOZog0MxSas4JDQaKysDU7XaUwo9IqvGQB3/WgbkZYg072be
Di36MlFzZ/y7FKFvKpPZvLpIkSWdBKjaKKg+atar4agqwUAFEXFagc1DrF3qcQBrinIyYLbJ5HBV
mcNCZBcW//4/1yn5X21r8v/ltaWPscZ9+f9gZ3s+/x/0Buv8/1M0guQ//stigdUUIT3vlYpBTxWB
RqdzV0m203koLlNxDW1SjH2rmK462R9gyaHGh1WpscNBi4LZ21SCRKfXomNjb8edhZBMils1NjFp
Cz9ZPKXPAbEbw/VkyVDGaYKMubbbZnySMuZb3a+WHEiHwIH4fjhjQFaIDdhOLTvzwtsojhGwffFr
SqrhQ+hE9KLOXWwoskiuGZkvTOVgLqJxqKrRuIHSmzytMh5miJWjiaqg3eoSBphCqSTvsxWYfETX
ZDlKF4FKZB6lTXD+qt6/6wivNJV8RYHBPI30glzy2KJkS1c0CpgEFsFKTWLUKq2IEzyeOeKRJslL
qGbu8FJio5AEyi9UM9cmVERPmJbzgo+7TEGmCpwoCr2bXGYTcXXM9eCv0qJ8/Q3FzheYF6t9C/b0
y/dZmoOdwucg2ntx+Lpde/qWhx5ST3HUf93Q64PWk23nyWHrycB5cvSt5j7Po6JkR6olMWqcILpr
QcLVjDou7s+Xzk6uXr28eCZOj2kr4uzgxQl/EMcXp1+fXNCny6OX5yeeHAfI9OGaO7t7+NII3/rE
lXZPd0H3/aef40uqvOsZm0+6I57Xk+LLhAzELani2O2oaSDVR3gpw0lc0ubmH07WTO4FWrN4gMXb
SDreLjapZNVBEtVpaoXLc1beB0ni7MI5GCB5yvAuFneqHQiH2holjKjeAN65+TxKqnec4elZSQEN
XXRQRVJpKRabyCwxzh71x83pu8Imjs0+D7U56nLj0moaEbAUIlOOEF3PdEb4gTW15kZG/qgSWjN+
vGq8rWfecddGoMnUG32ivIVc99dA9VzmiKXpG4ZQLmM0/jMS5rKNgg89g75AZ7sCwLABa1ANgHNF
R60xjqsKNb3V+5IA/ptkjvOLzQJhEbwYao+jN1iWK1/73V532xQl6i8GI0Iqm/vWJRhHibaY6Nhl
pGuJp+crK4muEZtcuVl1sch2ev6QAy9tw5yRHzS3s+MfVcVxxptCzi/F64enL85fXlwdnF19ix9f
akN1Ost9ptPZat3vyoSqJqsuC/gccvmFhbcb6bYtGUxkghUUBycqU7oroA8dvqaIcDuZcQjSuRs2
Ku/LU7noZKuDdURsipqVLSa1BVspVfdD03fXiAums1OcU0Q8p/yyYGe+UNfY1YTScJwSnG5sI5yJ
N1RskWMCHI6hWTNic+Rno8f6yiBWRKmqhhR1oK+OvprQaSUcrg3wcgEWciczbaplhMVdvV1n8axK
QBvo3mOSxpTggjHd8Mlt2CYX6G6RuvPVRy6vr6F+nlhqhGeJcC7dwgx9N1zCL55f6ICfp7dgoEwq
2rfT75l71CSkRTveN8HtdXOn/ptkkzs87T1+ZEjDKwPupNqtdoDaKPR+bWVRBgFRUyotEndiT2lf
uiyUFXR4YpFZtWMjDBCUCgd6DhLIj3EqYnJeWqM7V8h5Br++km+UxAHwvKvVQD/hNyKaa8IhBUfy
/zE6KOWmCV0OhPWpgJDzVJkzAA4aTN/VO8mhmGn8TOO6Lu8lAKXuuvZwZ2vy/3ve1Pg/rHFf/t+b
v//fxp/eOv//FI1O8vd/bFDpjtd7QLMY3Kke6KbLK6uCNsMc0rU8qDG/JdVk7oiOnKJTNTNSFGl/
WyHYFhqIOx1+l4rfBgDAN/FX8nUZoCFDyqjyxFQEAOf03lFYX/kjX2C4p8nGElHRPMMutzTpI5My
ay5c/Gkz8oMc3L8Eiaxy9WHBwCA5xQGWmDto2evH8PLPed8mor+H8BCWu/I/RTXWC9gqujCtmZJa
MwrS2RRrxN+O9AsRBv3bGLrFiQplP7Qbn9JhUyVBVw6Im8i6wlQVVJq2JZSxMmXoVsyhtGfEu7pr
RXFwdqwv11rr1bqqXw2g1RsLXJZIKfpDWzSheeuc6O6XK5bePvB020Oh0yn2L5tb6Rf3zN5H9qKr
yUnPzGZN6YCNBx0ZEqgppnIu+ezVdTxbmYr9ht540+kUW8x+YVmQuUCjb/n5cN/XqZYWCqf0OgLP
Y2plXHlxraxwXxHhuEty1GkOJU08OzgxczSwAodQNOzLoQjsITWz5i7LWEetxe6cBQZD8bXKkbIa
rePvRa24+g2SK2XKJuZOkdiA4WylmkII2SolLaE5KzQfESUjgryg6raa9Y9+EEfCn5ijxrqk5DGv
96U9mSV5KOiKHVikbhmkwFLcRPby5Erc5ErxTeGjr1Qcp1qiZ88fPmon3V86XdtPnp18cyk6+ruT
d62XhRR+XOLwO9bhNQgZRV2SouYKDLpDS67aiFsW2lvHoEjrW3LtNXQoFpzmQ44A4oJB7tXHwM8Y
LMCy+Ufe7tA9Ey25d4fCnpFDgnsn66Ar2RPKq16WnOj8yt661xqwd/IspT6edyfMzf6bdNnxmXoF
PZezgnmvxUizfHI9qJm4XkxPfjhXwrj7/TnjAHWGtYh2c4rcGwq3mPMrquw1nqMUF7ac5d1S7uj+
dwZsQacF2VzRkeXqgo65TG1VcWzk4+pLraPRiloOQV5dG8fi5s2N2gWuoxtxy/CeK77YBb3RKwwp
fo/EZrtuyG5MS0el8+oSHZfHDLOkJUtEGkwrPjib104wZ/rVN/BLI+Bf/v0fnYsM0LsMCbt6qFN9
yvCdzP24NSX5Xv1yCl1LoEeV8RUITXpH8md5RFFljB2NxigDtDfTc1memXa+UjDHKpbc22sruNcO
dqq5NHLhdS3eSjuE/cA3tsxK3/D9EMzV/G7APxjrySBPC+KwXGQO5+TxPLpi0zcc8H1rqF23TC0z
jEjUQ1vCxE7GFKyiqbxRxZZ4i8x5Sh/IhPM0nbkzm5y93sdDuPeSVyTc+/t/+8M6h/6bbTgF3wGI
fspf//thv//H9//b/d3B+vf/PkWz9r84OTh+cfKRXviYa/fUf3qD/rz9Bzvb69//+yTtM4cOUIw5
1/4gjvmGM81nxPBsB3DRPIjoyuQ6ReSiCLlIEvRrCVmufP7NAROYxCYHwi0dB7fMpeHjLhJT80uG
COb0HiAV//VFgUBEV7ocDC41jYhNpZlKCn2Zh2ga2k2uq7zrtm7rtm7rtm7rtm7rtm7rtm7rtm7r
tm7rtm7L2v8CbRwWFgBQAAA=
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-s4:latest upUse the above command to pull and run the Compose file. Learn more.