Sign inSign up

michaelirwin244/workshop-poc:compose

Manifest digest

sha256:cc085b33fd3e1eb2114ff8673d7c2a352291e2baedece3085a51c52e6c06de1d

Last pushed

about 1 year by michaelirwin244

Type

Compose

Manifest digest

sha256:cc085b33fd3e1eb2114ff8673d7c2a352291e2baedece3085a51c52e6c06de1d

Compose file content

services:
  project-setup:
    image: michaelirwin244/workshop-poc:setup
    pull_policy: always
    volumes:
      - project:/project
    environment:
      PROJECT_CLONE_URL: https://github.com/mikesir87/workshop-poc-content


  instructions:
    image: michaelirwin244/workshop-poc:markdown-server
    pull_policy: always
    ports:
      - 8000:3000
    volumes:
      - project:/project
    environment:
      ROOT_DIR: /project/docs
      SITE_TITLE: Workshop POC
    depends_on:
      project-setup:
        condition: service_completed_successfully

  workspace:
    image: michaelirwin244/workshop-poc:workspace
    pull_policy: always
    command: /home/coder/project
    depends_on:
      project-setup:
        condition: service_completed_successfully
    ports:
      - 8085:8085 # For the IDE itself
      - 3000:3000 # For the application running in the IDE
    environment:
      TESTCONTAINERS_HOST_OVERRIDE: localhost
    volumes:
      - socket-proxy:/var/run
      - type: volume
        source: project
        target: /home/coder/project
        volume:
          nocopy: true
          subpath: workspace

  host-forwarding:
    image: michaelirwin244/workshop-poc:host-port-republisher
    pull_policy: always
    volumes:
      - socket-proxy:/var/run
    network_mode: service:workspace
    environment:
      LABEL_FILTER: demo-setup=true
    depends_on:
      - workspace
      - socket-proxy

  workspace-cleaner:
    image: michaelirwin244/workshop-poc:workspace-cleaner
    pull_policy: always
    volumes:
      - socket-proxy:/var/run
    environment:
      LABEL_FILTER: demo-setup=true
    depends_on:
      - socket-proxy

  socket-proxy:
    image: mikesir87/docker-socket-proxy
    pull_policy: always
    # image: socket-proxy
    # use_api_socket: true
    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 project volume, since the project
          # is running out of a volume.
          - type: mountPath
            from: /home/coder/project
            to: project/workspace

          # 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: socket-proxy/docker.sock

          # Add labels to all newly created objects
          - type: addLabels
            labels:
              demo-setup: "true"

          - type: addToNetwork
            networks:
              - workshop-poc
        gates:
          - type: mountSource
            allowedSources:
              - project
              - socket-proxy
              - buildx_buildkit_default_state

        responseFilters:
          # Only return objects with the labels we mutated on
          - type: labelFilter
            requiredLabels:
              demo-setup: "true"
      LISTEN_SOCKET_PATH: /tmp/proxy/docker.sock
    # pre_stop:
    #   - command: docker rm -f $(docker ps -aq --filter "label=demo-setup=true") || true
    #   - command: docker volume rm -f $(docker volume ls -q --filter "label=demo-setup=true") || true
    #   - command: docker network rm -f $(docker network ls -q --filter "label=demo-setup=true") || true

volumes:
  socket-proxy:
    name: socket-proxy
  project:
    name: project

networks:
  default:
    name: workshop-poc

Docker commands

docker compose -f oci://michaelirwin244/workshop-poc:compose up

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

Images used

Image


Pulls

10K+

Stars

0

Last Updated

8 months

Compose + 1 more


Pulls

1.7K

Stars

0

Last Updated

about 1 year