Skip to content

Docker Support for Testing and Development (client) #144

@maryapp

Description

@maryapp

Feature Request: Docker Support for Testing and Development

Problem

Setting up element-deeplabcut for testing currently requires:

  • A Conda environment with a specific Python version
  • A running MySQL database (docker)
  • A full DeepLabCut installation
  • Manual setup of dj_local_conf.json

This makes it difficult to:

  • Run tests in CI/CD pipelines
  • Onboard new contributors
  • Ensure fully reproducible development environments
  • Avoid environment drift between machines

Proposed Solution

Add first-class Docker support to streamline testing and development.

1. Dockerfile

  • Base on the official DeepLabCut image
  • Install element-deeplabcut, dependencies, and test utilities
  • Include non-GPU mode for lightweight smoke tests

2. docker-compose.yaml

A multi-service setup including:

  • MySQL (with persistent volume)
  • Client container for running tests and development commands
  • Optional volume mounts for test videos and local code

3. Makefile

Convenient shortcuts:

  • make up — start MySQL + client
  • make test-trained — run trained-model workflow tests
  • make test-pretrained — run multi-animal/pretrained tests
  • make shell — open an interactive development shell inside the client container

_Additional Context

The official DeepLabCut Docker image should be used as the base.
The database should persist between runs using local Docker volumes.
Test videos and sample DLC outputs should be mountable as volumes during development._

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions