Deploying from a Docker Image | Seenode Docs

Deploying from a Docker Image

Run a prebuilt Docker image on seenode from Docker Hub, GHCR, GitLab, or a custom registry. No Git build step.

If you already build and push images somewhere else, you can skip the Git source on seenode and deploy that image directly. We pull it from your registry and run it.

This is in Beta.

Note (Image vs Git)

Image-backed apps pull an OCI image. Git-backed apps clone your repo and build on seenode. Pick whichever matches how you already ship.

Prerequisites

  • A seenode account
  • An image in a registry we can reach (public, or private with credentials)
  • A linux/amd64 image. On Apple Silicon, build with --platform linux/amd64 or you will get arm64 by default and the deploy will fail.

Supported registries

RegistryExample
Docker Hubnginx, library/nginx, your-user/app:1.2.0
GitHub Container Registryghcr.io/your-org/app:1.2.0
GitLab Container Registryregistry.gitlab.com/your-group/app:1.2.0
Custom (Harbor, Quay, self-hosted, etc.)registry.example.com/team/app:1.2.0

Short Docker Hub names resolve to docker.io/library/... when needed. Digests work too if you prefer pinning (nginx@sha256:...).

Create an application from an image

  1. Pick Docker image as the source

    Create a new application and choose Docker image instead of Git repository.

    Create application source choice with Docker image selected
  2. Image, credentials, and tag

    Fill in where the image lives and how we should pull it.

    • Image
      • Hub short name like nginx , or a full path like

        ghcr.io/org/app
      • Type two characters to search Docker Hub
      • For other registries, paste the full path
    • Pull credentials
    • Tag
      • We list tags once the image name resolves
      • Defaults to latest when that tag exists

    Image source step with image name, credentials, and tag

    On continue, we resolve the image and check that a linux/amd64 manifest exists before moving on.

  3. Runtime settings

    Set how the container should run.

    • Docker command (optional)
      • Overrides the image CMD

      • Leave blank to keep the image entrypoint as-is
    • Port (web / private)
    • Environment variables
      • Optional KEY=value lines

      • Append * to a key to mark it secret (API_KEY*=... )

    Image setup with Docker command, port, and environment variables
  4. Create and deploy

    Create the application. We pull the resolved digest and start the deploy. Open the app for logs while it comes up.

After deploy

Image-backed apps show a Docker badge and the image:tag in the application list.

Application list showing an image-backed app with nginx:1.27

Under Settings you can change the image, credential, tag, Docker command, and port. Saving deploy settings kicks off a new deployment.

Updating an image

Pushing to your registry does not redeploy the app. There is no Git-style auto-deploy for image sources.

To ship a new version:

  1. Push the updated image (and tag) to your registry.
  2. Open the application and start a deploy.
  3. Pick the tag you want, or keep a mutable tag if you intend to pull whatever is behind it now.
Redeploy dialog for picking an image tag

Immutable tags (1.4.2, a git SHA) make rollbacks obvious. Mutable tags like latest are fine if you redeploy after each push on purpose.

Requirements and limits

  • Architecture: linux/amd64 only.
  • Tag picker shows up to 100 tags.
  • Hub autocomplete is for discovery. Non-Hub paths are just pasted image names.
  • Pricing is the same application packages and credits as Git-backed apps.

Troubleshooting

SymptomWhat to check
Manifest / resolve failedImage name, tag, credentials, and that a linux/amd64 variant exists
No tags foundSpelling of the image, and that the credential can list tags on private repos
Authentication failedToken scopes and username. Re-check the credential under Team → Container registry
App crashes immediatelyConfirm the image is linux/amd64 (not arm64), and that the process listens on 0.0.0.0 at the configured port
New push not liveRedeploy manually. Auto-deploy does not run for image sources

Build for amd64 when you need to:

Terminal
docker build --platform linux/amd64 -t ghcr.io/your-org/my-app:1.0.0 .
docker push ghcr.io/your-org/my-app:1.0.0