Using Esadax's Private Container Registry

Author:Esadax
Updated:Aug 21, 2025

Introduction

Esadax offers a private container registry for securely storing and distributing Docker images within your organization or projects. This guide walks you through setting up, authenticating, and using the registry across local environments and CI/CD pipelines.


Local Docker Setup

Logging In to the Registry

Use Docker CLI to authenticate using your personal access token:

docker login esadax-registry.esadax.sh -u your-username -p $Esadax_REGISTRY_TOKEN

💡 You can store this token securely in a .env file or export it per session:

export Esadax_REGISTRY_TOKEN=your_token_here

Building and Pushing Images

1. Tag the Image

docker tag my-app:latest esadax-registry.esadax.sh/my-project/my-app:latest

2. Push to the Registry

docker push esadax-registry.esadax.sh/my-project/my-app:latest

3. Pull from the Registry

docker pull esadax-registry.esadax.sh/my-project/my-app:latest

.docker/config.json (Optional)

You can also configure Docker to remember your login:

{
  "auths": {
    "esadax-registry.esadax.sh": {
      "auth": "base64(username:Esadax_REGISTRY_TOKEN)"
    }
  }
}

Use echo -n "username:token" | base64 to generate the auth value.


GitHub Actions Integration

Use the following workflow to authenticate and pull/push images from the registry during CI/CD runs.

.github/workflows/registry.yml

name: Docker Registry CI

on:
  push:
    branches: [ main ]

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Log in to Esadax Registry
        run: echo "${{ secrets.Esadax_REGISTRY_TOKEN }}" | docker login esadax-registry.esadax.sh -u ${{ secrets.Esadax_USERNAME }} --password-stdin

      - name: Build Docker image
        run: docker build -t esadax-registry.esadax.sh/my-project/my-app:latest .

      - name: Push to Registry
        run: docker push esadax-registry.esadax.sh/my-project/my-app:latest

🔐 Add Esadax_REGISTRY_TOKEN and Esadax_USERNAME to your GitHub repository secrets for secure authentication.


Troubleshooting Tips

  • 401 Unauthorized: Double-check your token or re-login using docker logout and then docker login.
  • Tag Mismatch: Ensure your image tag exactly matches what you're pushing or pulling.
  • Private Access: Make sure the image is accessible under your project scope and permissions.

Best Practices

  • Use short-lived tokens or automation-specific tokens for CI.
  • Avoid storing tokens directly in Dockerfiles or code.
  • Use semantic tagging (v1.0.0, latest, dev, etc.) to organize versions.

Conclusion

Esadax’s private container registry provides secure, scalable hosting for your Docker images. By following this guide, you can easily integrate it into your local development flow and CI/CD pipelines. If you experience issues, refer to the documentation or reach out to Esadax support.