Skip to content
Jorge Silva edited this page Mar 22, 2017 · 3 revisions

This list explains how the worker flow works for different tasks/events in Runnable. These tasks can be triggered directly, or can be triggered indirectly through something like docker-listener.

-> triggered directly through RabbitMQ job
===> Triggered through an event in Docker listener or in some other way

Command: Create a User Container

Divided in two parts: building a container to create an image for the instance container, and then starting that container.

Create Image Builder Container

  • build.container.create
    • ===> build.container.created (Creates container to build image)
  • build.container.created( Starts image builder container)
    • ===> container.life-cycle.started
  • container.life-cycle.started
    • ==> container.image-builder.started (if type is image-builder-container)
  • container.image-builder.started
    • ===> container.life-cycle.died
  • container.life-cycle.died
    • -> application.container.create

Create Container

  • application.container.create
    • -> instance.rebuild (if image was not found)
    • ===> application.container.created
  • application.container.create
    • -> instance.start
  • instance.start
    • ===> container.network.attached
  • container.network.attached

Command: Remove a dock

  • dock.removed
    • -> instance.rebuild / instance.container.redeploy
  • instance.rebuild
  • instance.container.redeploy -
    • -> application.container.create/delete-instance-container

Command: Stop a Container

  • instance.stop

Event: A container died

  • instance.container.died

Command: Delete an instance

  • instance.delete
    • -> application.container.died
  • container.delete