Difference between `pg14-ts2.7-latest` and `pg14-latest` for docker image `timescale/timescaledb-ha`?

I’m pulling docker images timescale/timescaledb-ha and have noticed different tags. There are
pg14-latest and pg14.4-ts{…}-latest like pg14.4-ts2.7-latest.
What are the differences between these? What is ts ?

I used the former one (docker pull timescale/timescaledb-ha:pg14-latest) at the moment.
When I enter psql I noticed in my case the command prompt is

postgres=#

, not like that in the tutorial

tsdb=>

.
Why is this?

1 Like

Hey @Cyber_punk. This is a valid question, and one that I had wondered about myself a little while ago.

The answer is that each release of the timescaledb-ha docker image gets a new very-specific (and immutable) tag. An example is the recent pg14.4-ts2.7.1-p0 tag. That tag contains Postgres version 14.4, TimescaleDB version 2.7.1, and is the 0th build of that combination of tools. That image is also tagged with the “mutable” tags pg14-latest, pg14-ts2.7-latest, pg14.4-ts2.7-latest, and pg14.4-ts2.7.1-latest. These mutable tags can (and probably will) be updated in future to point to a new version of the docker image.

As an example, if we update some tools in the docker image, but keep the same Postgres, and TimescaleDB versions, then that will be published as pg14.4-ts2.7.1-p1. This is the “immutable” tag which will never point to a different docker image. When that version is published, the mutable tags (pg14-latest, …) will be updated to point to the that docker image.

In general, for production use-cases, it would be safest to use an immutable tag (ending with -pX, where X is some number).

If you’re just trying out an image, feel free to use pg14-latest.

As for the differences in prompt (postgres=# vs. tsdb=>), the name shown on the prompt is the name of the database that you’re connected to. I’m assuming that the tutorial is based on timescale cloud, in which the default database name is tsdb. The default database in the docker images is postgres.

3 Likes