...
Question: Is there any way to make the docker container can 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?
- Developer visits the Brown Dog developer/contributor web page, which provides an overview of what and how they can contribute. (TODO: create contributor web page)
- Tools catalogue page has some information on this. TODO: A link to the contributor web page with instructions - Developer installs prerequisites: possibly a development VM, Docker, python, python-pip
- 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)
- Extractor template project: imagemagick edge detector
- Converter template project: imagemagick jpg to ico converter
Create a local project from the template:
Code Block language bash git clone http://bitbucket.ncsa.illinois.edu/path/to/template.git myextractor
- Developer creates and activates a python virtual environment for their new project.
Code Block | ||
---|---|---|
| ||
virtualenv myextractor
source myextractor/bin/activate
pip install docker-compose
|
Developer runs "docker-compose up" to
create developmentstart runtime environment
withof docker containers (TODO: Docker compose YAML for complete BD environment) (TODO: Any missing Docker containers)
- Includes running Clowder instance, Polyglot instance, basic development tools
- Maybe even an IDE configured and ready to go? (I'd assume any developer will have their own IDE -Gregory Jansen)
- Includes a bare-bones extractor container ready to be modified for a new tool (with comments suggesting where to edit) (Rui Liu has started this)
- Contains a bare-bones converter ready to be modified for a new tool (with comments suggesting where to edit)
Code Block language bash cd myextractor docker-compose up
- Runtime containers for extractors: Clowder instance
- Runtime containers for converters: Polyglot instance
- Developer adds custom code to template projectDeveloper installs tool, creates interface script(s)
- Adds sample input file(s)
- Example extractor: imagemagick edge detector
- Example converter: imagemagick jpg to ico converter
- Smruti Padhy and Inna Zharnitsky will assist Gregory Jansen here
- 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
- 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)
...