Accessing the OCI Registry
Accessing the OCI registry
💡 Note
Customers can access Tines images from our OCI registry at
oci.tines.com. To request access, contact Tines Support. Once approved, Tines will provide registry credentials.
The Open Container Initiative (OCI) defines open standards for container images and their distribution. The Tines OCI registry stores OCI-compatible container images and supports standard tooling such as Docker, Podman, containerd, Kubernetes, and ORAS. It also supports version tags, digest-based references, multi-architecture images where available, and Cosign signature verification.
Logging in
After receiving your username and password, log in to the Tines registry.
Registry usernames often contain a dollar sign (for example, tines$example). Always assign credentials with single quotes so the shell does not expand $… to an empty string:
OCI_USERNAME='tines$example'
OCI_PASSWORD='your-password'Log in with Docker for image pulls, and with ORAS for listing tags and inspecting manifests:
echo "$OCI_PASSWORD" | docker login oci.tines.com \
--username "$OCI_USERNAME" \
--password-stdin
echo "$OCI_PASSWORD" | oras login oci.tines.com \
--username "$OCI_USERNAME" \
--password-stdinIf authentication fails, Harbor may have treated the request as anonymous. That usually means the username was shell-expanded (for example, double-quoting tines$example turns it into tines). Reassign credentials with single quotes and log in again.
Available images
The following images are available:
tines/tines-apptines/tines-command-runnertines/tines-nginxtines/command-over-httptines/postgrestines/valkeytines-tunnel/tines-tunnel
The images available to an account depend on its entitlements. Contact Tines Support if you cannot access an expected image.
Some image paths differ from Docker Hub and registry.tines.com:
Legacy path OCI path
--------------------------- ---------------------------
tines/tines-tunnel tines-tunnel/tines-tunnel
redis tines/valkey
postgres tines/postgres
tines/nginx-unprivileged tines/tines-nginx
tines/tines-app-with-fips tines-fips/tines-app
tines/tines-command-runner-fips tines-fips/tines-command-runnerListing tags for an image
Set the repository you want to access:
REPOSITORY="tines/tines-app"List its tags:
oras repo tags "oci.tines.com/${REPOSITORY}"Looking up an image by digest
Set the tag you want to inspect:
TAG="vX.Y.Z"Resolve its digest:
DIGEST=$(oras resolve "oci.tines.com/${REPOSITORY}:${TAG}")
echo "$DIGEST"Fetch the manifest using that digest:
oras manifest fetch --pretty "oci.tines.com/${REPOSITORY}@${DIGEST}"You can also fetch the manifest by tag directly:
oras manifest fetch --pretty "oci.tines.com/${REPOSITORY}:${TAG}"Pulling images
Pull Tines images using:
docker pull oci.tines.com/tines/tines-app:vX.Y.Z
docker pull oci.tines.com/tines/tines-command-runner:vX.Y.Z
docker pull oci.tines.com/tines/tines-nginx:<nginx-version>
docker pull oci.tines.com/tines/command-over-http:vX.Y.Z
docker pull oci.tines.com/tines/postgres:<postgres-version>
docker pull oci.tines.com/tines/valkey:<valkey-version>The app and command runner images also support major and minor version tags, such as vX and vX.Y, in addition to full vX.Y.Z versions.
ARM support
ARM-compatible images are available starting from Tines version 37.2.0. Most core images (tines-app, tines-command-runner, tines-nginx, postgres, and valkey) publish multi-arch manifests. command-over-http is currently amd64 only; on ARM hosts, pull it with --platform linux/amd64.
Verifying images
Tines images can be verified using Cosign:
cosign verify \
--key ./cosign.pub \
oci.tines.com/tines/tines-app:vX.Y.ZUse the following public key:
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUnTLRvsoHNEC04P2aBriS8p+0dAb
LgXrtHxEyC4R+rh44PB0unsYAEdNeLvPDnnn7GigylmaFwOPeQzLJigV6Q==
-----END PUBLIC KEY-----