The catalog can manage the container repositories used for your various ingest and batch jobs for you.
Any user can create a container repository in their organization. They can then get login credentials for the repository, and from there, upload docker images using standard tooling.
Container information is not visible in the catalog frontend; you must use the
ark-catalog-container-tool to work with container repositories.
You can list all of the repositories that you have access to by using the
ark-catalog-container-tool and the ’list repositories’ operation:
~/ark$ ./build/ark-catalog-container-tool --list-repositories Organization URL 2ea25035-6aa4-42fb-9955-92288ea1b972 095412845506.dkr.ecr.us-east-1.amazonaws.com/prod/2ea25035-6aa4-42fb-9955-92288ea1b972/catalog/extract-video 2ea25035-6aa4-42fb-9955-92288ea1b972 095412845506.dkr.ecr.us-east-1.amazonaws.com/prod/2ea25035-6aa4-42fb-9955-92288ea1b972/catalog/extract-gps 2ea25035-6aa4-42fb-9955-92288ea1b972 095412845506.dkr.ecr.us-east-1.amazonaws.com/prod/2ea25035-6aa4-42fb-9955-92288ea1b972/catalog/extract-annotations
From here you can see that three repositories are available to you, and it includes their full URL (the URL you would tag and push to).
Any user can create a repository in their organization(s). Any user in that organization can see that repository (or push to it).
To create a repository, use the container tool:
~/ark$ ./build/ark-catalog-container-tool --create-repository test/repo --organization <GUID>
This will create a repository with the name ’test/repo’ in the given organization. The full URL will be returned. Note that the URL will have ’test/repo’ in it, but will also include other paths, including your organization.
You can log into the remote ECR by using the login operation:
./build/ark-catalog-container-tool --login catalog/extract-video --organization 2ea25035-6aa4-42fb-9955-92288ea1b972
This will log into the
catalog/extract-video under the standard TBD organization. A base64-encoded
string will be returned that can be used for your password. You can pipe it into docker
./build/ark-catalog-container-tool ... | docker login --username AWS --password stdin
Note that the cmake docker rules take care of this step for you.
The easiest way to do this is to use the built-in cmake docker rules. See the docker page for more details on the command.
Once you have your docker target defined, you can typically execute something like this:
This will handle automatically logging in to the appropriate registry, building the dependencies and container, and then pushing it up to the catalog.