Skip to content

Create a separate project for launching mock deployments with Docker and Apple container #3724

Description

@adamtheturtle

The native Apple container quickstart currently requires users to create a network, start three containers, discover the target manager's IP address with container inspect and jq, pass that address to VWS and VWQ, and run readiness probes. This wiring should be handled by a launcher so that users can start a mock without copying address-parsing commands.

Create this as a separate project and repository, with its own packaging, releases, documentation, and tests. The launcher should use the existing published mock images and preserve the three-service deployment. It should not become a runtime adapter inside vws-python-mock or require Socktainer for Apple deployments.

Proposed interface (command name subject to the new project's naming):

mock-vws up --runtime apple
mock-vws down --runtime apple
mock-vws up --runtime docker
mock-vws down --runtime docker

Acceptance criteria:

  • Support Docker and Apple's native container CLI through their public interfaces.
  • Create the deployment network, start target manager first, discover its address as needed, and configure VWS and VWQ automatically.
  • Default to loopback bindings on host ports 5005 (target manager), 5006 (VWS), and 5007 (VWQ), with configurable ports and a configurable public VWS URL for report downloads.
  • Wait for all three services to become usable through their published host ports before reporting success. Use a bounded timeout and include useful service logs on failure.
  • Report the three service URLs and provide a short database-creation example.
  • Clean up resources created by a failed startup. down should remove only resources owned by the named deployment and be safe to run repeatedly; do not remove unrelated resources. Support named deployments so users can run more than one mock with different ports.
  • Keep installation straightforward and document host prerequisites. Users should not need to install jq, write host-side Python, or manage inter-container addresses themselves.
  • Verify both runtimes using real deployments: database creation, signed VWS requests, target upload/processing, a matching VWQ query, report download URLs, and cleanup. Cover startup failure, timeouts, resource-name collisions, and repeated shutdown without weakening the existing vws-python-mock deployment tests.
  • Once the launcher is released and verified, update vws-python-mock documentation to link to it as the simple setup path. Retain the native CLI instructions for users who want to manage the containers directly.

This issue tracks creating the separate project and integrating its released launcher into the documentation; it does not propose combining the three services into one container.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions