Updating Synaccess CMP (Docker)

This guide explains how to know when an update is available, how to apply the update with Docker Compose, and how to verify / roll back if needed.


How you’ll know about updates

  • Release email notifications — ask us to add you to the update list: [email protected] (subject: “Add me to Synaccess CMP update notifications”).
  • Manual check — if your Compose file uses image: synaccess.azurecr.io/syn-cloud:${TAG:-latest} with pull_policy: always, running docker compose up -d will check for and apply the newest latest image.
  • Changelog: We publish every release at synaccess.readme.io/changelog.

If your .env contains a TAG=..., you are pinned to that version and won’t get latest automatically (see Pinning & rollback below).


Quick update (most deployments)

From your deployment folder (e.g., /opt/syn-cloud):

# 0) (First time only or if credentials expired)
docker login synaccess.azurecr.io -u <TOKEN_USER> -p '<TOKEN_PASSWORD>'

# 1) Pull any newer images referenced by docker-compose.yml
docker compose pull

# 2) Recreate the service with the new image (keeps volumes/config)
docker compose up -d

# 3) Sanity check
docker compose ps
docker compose logs --tail=100 syn-cloud

This is safe to run repeatedly; if nothing changed, Compose won’t restart the container.


Verify what version you’re running

# Show images in use by the stack
docker compose images

# Show the exact digest of the running image
docker inspect --format='{{index .RepoDigests 0}}' synaccess.azurecr.io/syn-cloud:latest

# If you’re pinned (TAG set), replace :latest with your tag
docker inspect --format='{{index .RepoDigests 0}}' synaccess.azurecr.io/syn-cloud:<YOUR_TAG>

Pinning & rollback (simple, edit-free workflow)

Your docker-compose.yml should reference:

image: synaccess.azurecr.io/syn-cloud:${TAG:-latest}
pull_policy: always

Track newest automatically (default):

  • Leave TAG unset in .env → you follow latest.
  • Update command:
    docker compose pull && docker compose up -d

Pin to a specific release (freeze / rollback):

  • Set TAG in .env (for example):
    TAG=2025.10.02
  • Apply:
    docker compose up -d
  • To rollback, change TAG to a previous version and run the same command.

Return to auto-updates:

  • Remove the TAG= line (or comment it out) in .env, then:
    docker compose pull && docker compose up -d

Maximum reproducibility (advanced):

  • Pin by digest instead of tag:
    image: synaccess.azurecr.io/syn-cloud@sha256:<digest>
    Find the digest after a pull with:
    docker inspect --format='{{index .RepoDigests 0}}' synaccess.azurecr.io/syn-cloud:<tag>

Scheduling updates

  • Maintenance window: expect a brief interruption while the container restarts.
  • Devices re-connect automatically: PDUs will re-establish telemetry/websocket connections once the app is back up.

Troubleshooting

  • 401 Unauthorized when pulling

    docker login synaccess.azurecr.io -u <TOKEN_USER> -p '<TOKEN_PASSWORD>'

    Re-check that your token is current and scoped for pull.

  • No updates appear

    • You may be pinned. Check .env for TAG=.... Remove it to follow latest, or change to the new version tag.
    • Ensure pull_policy: always is present (or run docker compose pull explicitly).
  • DNS / network errors

    nslookup synaccess.azurecr.io
    curl -I https://synaccess.azurecr.io/v2/ || true

    Allow outbound HTTPS (443) from the host to the registry.

  • Config changes not applied

    • Edit .env and re-run:
      docker compose up -d
    • If needed, force recreation:
      docker compose up -d --force-recreate

Need update notifications?

Email [email protected] and ask to be added to the Synaccess CMP update newsletter. We’ll notify you when a new image is published and include highlights and tag details.