How Do I Use Spinup Container Repositories?

How Do I Use Spinup Container Repositories?

Spinup Container Repositories let you store and manage your own Docker images securely within your Spinup space. These repositories integrate with Spinup Container Services or any external system that supports Docker image pulls.

All images are encrypted, automatically scanned for security vulnerabilities, and only billed based on storage used.


What Can I Use It For?

  • Storing custom Docker images you’ve built

  • Hosting versions of your application for deployment in Spinup

  • Automating image uploads from CI/CD pipelines

  • Sharing container images between spaces


Prerequisites

Before you begin, make sure you have:

  • Access to a funded Spinup Space

  • Docker installed on your workstation or CI environment

  • AWS CLI installed
    (or the Amazon ECR Credential Helper for easier logins)


Step 1: Create a Repository

  1. Log into https://spinup.internal.yale.edu

  2. Navigate to your Space

  3. Click Create

  4. Under Containers, choose Container Repository

  5. Name your repository and click Create Container Registry


Step 2: Create a Repository User and Log In

To push images, you'll need to create a dedicated user and log in to the registry.

  1. Go to your new container repository

  2. Click the Users tab and add a user

  3. Click Create Key to generate credentials

In your terminal, run:

export AWS_ACCESS_KEY_ID=<your-key> export AWS_SECRET_ACCESS_KEY=<your-secret> aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin <repository-uri>

Note: All Spinup container repositories live in a shared registry. Logging into one replaces your local login for others — you’ll need to re-authenticate when switching.

Credentials are long-lived, but the Docker login session lasts 12 hours.


Step 3: Build and Push Your Image

Once authenticated:

Tag your image:

docker tag myapp:v1.0.0 <repository-uri>/myapp:v1.0.0

Or build with the tag directly:

docker build . -t <repository-uri>/myapp:v1.0.0

Push the image:

docker push <repository-uri>/myapp:v1.0.0

After pushing, you’ll see security scan results for each image in the Spinup web interface.


Step 4: Use the Image in Spinup Container Services

Images stored in a repository can be pulled by container services in the same space — no extra authentication needed.

To use an image:

  • Go to your container service configuration

  • In the Image field, use the full URI (e.g. 1234567890.dkr.ecr.us-east-1.amazonaws.com/spinup-00000000/myapp:v1.0.0)


Optional: Share a Repository With Another Space

If you want to use the same image in multiple spaces:

  1. Open your repository and go to the Sharing tab

  2. Click Add Space

  3. Select another space (must be at the same data risk level)

  4. Click Add

Now, container services in that space can pull from the repository.


Tips and Best Practices

  • Use descriptive tags for versioning (e.g., v1.0.0, prod, latest)

  • Regularly prune unused images to save on storage

  • Never hardcode secrets in Docker images — use Spinup secrets instead

  • Consider using the ECR Credential Helper if managing multiple repositories


Need Help?