Sign inSign up

olegselajev241/jcrete4kids-labspace:latest

Manifest digest

sha256:ef56f256db6bac4f2393859f3ee621f900b7ee5c5cfbc91c2fc91d1b8dc9daae

Last pushed

about 2 months by olegselajev241

Type

Compose

Manifest digest

sha256:ef56f256db6bac4f2393859f3ee621f900b7ee5c5cfbc91c2fc91d1b8dc9daae

Compose file content

##################################################################################################
# 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.30.0
    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.30.0
    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.30.0
    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.30.0
    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.30.0
    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/shelajev/jcrete4kids

  workspace:
    image: olegselajev241/jcrete4kids-labspace-workspace:latest
    environment:
      JAVA_HOME: /opt/java/openjdk
      PATH: /opt/java/openjdk/bin:/home/coder/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    ports: !override
      - "8085:8085"
      - "3000:3000"
services:
  configurator:
    image: docker.io/dockersamples/labspace-configurator:v0.30.0@sha256:0272978fbf686bb205cd5b6ef3b40d9502e35405209e9773f3cbfb9daec15659
  host-republisher:
    image: docker.io/dockersamples/labspace-host-port-republisher:v0.30.0@sha256:6947cbfcbb1877c5e692402709ade696a5d04ba121a006e397d3ea9b2faeb74a
  interface:
    image: docker.io/dockersamples/labspace-interface:v0.30.0@sha256:746c17ebf1402e12403f7edb1501b9da32462a7420e94d4fba95a1a4c589f056
  socket-proxy:
    image: docker.io/mikesir87/docker-socket-proxy:v1.3.1@sha256:d4c529c567547db1fd983ddc3ea5d7e100005495895589095f99be7d288ccf52
  workspace:
    image: docker.io/olegselajev241/jcrete4kids-labspace-workspace:latest@sha256:0542bc5ca5ef7323a4c93a8feeb4f2b11cbc7f88321461d298db32808b8a4fe1
  workspace-cleaner:
    image: docker.io/dockersamples/labspace-cleaner:v0.30.0@sha256:a68b2c03d86a93e7b88981d80cf97c4b5d85e98245e4ca00773cfaa3cb303bf7

Docker commands

docker compose -f oci://olegselajev241/jcrete4kids-labspace:latest up

Use the above command to pull and run the Compose file. Learn more.

Images used

Image


Pulls

10K+

Stars

0

Last Updated

3 months

Image


Pulls

10K+

Stars

0

Last Updated

3 months

Image


Pulls

10K+

Stars

0

Last Updated

3 months

Image


Pulls

10K+

Stars

0

Last Updated

3 months

Image


Pulls

10K+

Stars

0

Last Updated

3 months

Image


Pulls

10K+

Stars

0

Last Updated

8 months

Image


Pulls

488

Stars

0

Last Updated

about 2 months