Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Question: Is there any way to make the docker container describe itself in more detail and maybe include some sample files, such that a single upload will capture everything we need for submission of the contribution?

  1. Developer visits the Brown Dog developer/contributor web page, which provides an overview of what and how they can contribute. (TODO: create or enhance contributor web page)
                - Tools catalogue page has some information on this. TODO: A link to the contributor web page with instructions 
  2. Developer installs prerequisites: possibly a development VM, Docker, python, python-pip
  3. Developer downloads a project template with all of the basics for an example extractor or converter project. (TODO: need a template project for converters) (Rui Liu has started this) (TODO: Create standalone extractor template project)
    1. Extractor template project: imagemagick edge detector
    2. Converter template project: imagemagick jpg to ico converter
    3. Create a local project from the template:

      Code Block
      languagebash
      git clone http://bitbucket.ncsa.illinois.edu/path/to/template.git myextractor
  4. Developer creates and activates a python virtual environment for their new project.
    1. Code Block
      languagebash
      virtualenv myextractor
      source myextractor/bin/activate
      pip install docker-compose

...

  1. Developer runs "docker-compose up" to start runtime environment of docker containers (TODO: docker-compose.yml for extractor runtime environment) (TODO: docker-compose.yml for converter runtime environment) (TODO: Create any missing Docker containers)
  1. Code Block
    languagebash
    cd myextractor
    docker-compose up
    • Runtime containers for extractors: Clowder instance
    • Runtime containers for converters: Polyglot instance
  2. Developer adds custom code to template project, creates interface script(s)
  3. Developer creates dockerfile
    • For extractors this should contain only the tool, its dependencies, and the extractor
    • For converters this should contain the basic Polyglot setup, ideally only the Software Server, the tool, its dependencies, and the converter interface script
      • I have not done a converter, they are packaged as VMs right? How can they be contributed/distributed/packaged? - Gregory Jansen
  4. Developer submits tool to Tools Catalog (using BrownDog account)
    • Interface script(s), dockerfile, sample input, sample output
    • Through web interface
    • Through script in development environment (probably the ideal way)

...