Code Monkey home page Code Monkey logo

cimg-postgres's Introduction

CircleCI Logo Docker Logo PostgreSQL Logo

CircleCI Convenience Images => PostgreSQL

A Continuous Integration focused PostgreSQL Docker image built to run on CircleCI

CircleCI Build Status Software License Docker Pulls CircleCI Community Repository

This image is designed to supercede the legacy CircleCI PostgreSQL image, circleci/postgres.

cimg/postgres is a Docker image created by CircleCI with continuous integration builds in mind.

Support Policy

The CircleCI Docker Convenience Image support policy can be found on the CircleCI docs site. This policy outlines the release, update, and deprecation policy for CircleCI Docker Convenience Images.

Table of Contents

Getting Started

This image can be used with the CircleCI docker executor as a secondary image. For example:

jobs:
  build:
    docker:
      - image: cimg/go:1.17
      - image: cimg/postgres:13.2
    steps:
      - checkout

In the above example, the CircleCI Go Docker image is used for the primary container while the PostgreSQL image is used as a secondary. More specifically, the tag 13.2 is used meaning the version of PostgreSQL will be v13.2. You can now connect to a PostgreSQL instance from the primary image within the steps for this job.

How This Image Works

This image contains the PostgreSQL database and its complete toolchain.

Variants

Variant images typically contain the same base software, but with a few additional modifications.

PostGIS

The PostGIS variant is the same PostgreSQL image but with PostGIS (and its several dependencies) pre-installed. The PostGIS variant can be used by appending -postgis to the end of an existing cimg/postgres tag.

jobs:
  build:
    docker:
      - image: cimg/go:1.17
      - image: cimg/postgres:13.1-postgis
    steps:
      - checkout
      - run: echo "Do things"

RAM

The legacy version of this image, circleci/postgres had a RAM variant. This is no longer the case. We're determining how much of a performance increase does this variant actually give before we decide to bring it back. If you used the legacy PostgreSQL image and you have data on the ram vs non-ram variant build times, please open a GitHub Issue and let us know.

Tagging Scheme

This image has the following tagging scheme:

cimg/postgres:<pg-version>

<pg-version> - The version of PostgreSQL to use.

Development

Images can be built and run locally with this repository. This has the following requirements:

  • local machine of Linux (Ubuntu tested) or macOS
  • modern version of Bash (v4+)
  • modern version of Docker Engine (v19.03+)

Cloning For Community Users (no write access to this repository)

Fork this repository on GitHub. When you get your clone URL, you'll want to add --recurse-submodules to the clone command in order to populate the Git submodule contained in this repo. It would look something like this:

git clone --recurse-submodules <my-clone-url>

If you missed this step and already cloned, you can just run git submodule update --recursive to populate the submodule. Then you can optionally add this repo as an upstream to your own:

git remote add upstream https://github.com/CircleCI-Public/cimg-postgres.git

Cloning For Maintainers ( you have write access to this repository)

Clone the project with the following command so that you populate the submodule:

git clone --recurse-submodules [email protected]:CircleCI-Public/cimg-postgres.git

Generating Dockerfiles

Dockerfiles can be generated for a specific PostgreSQL version using the gen-dockerfiles.sh script. For example, to generate the Dockerfile for v13.2, you would run the following from the root of the repo:

./shared/gen-dockerfiles.sh 13.2

The generated Dockerfile will be located at ./13.2/Dockefile. To build this image locally and try it out, you can run the following:

docker build -f 13.2/Dockerfile -t test/postgres:13.2 .
docker run -it test/postgres:13.2 bash

Building the Dockerfiles

To build the Docker images locally as this repository does, you'll want to run the build-images.sh script:

./build-images.sh

This would need to be run after generating the Dockerfiles first. When releasing proper images for CircleCI, this script is run from a CircleCI pipeline and not locally.

Configuration

Because some configurations for postgres are enabled at runtime, it is difficult if not impossible to change certain settings. As a result, we've provided a configuration file within this repository that allows you to import certain properties that can support your use case. This is located at the project root under custom-postgres.conf, however, you would be able to supply a custom configuration file yourself. In doing so, you would also need to specify this file when running the docker container.

For example, in the .circleci/config.yml, we are using it with this command; specifically, the "postgres -c 'config_file=xxx'" addition.

Please note there are additions to this file, such as shared_preload_libraries that may not be needed.

docker run --rm --env POSTGRES_USER=user --env POSTGRES_PASSWORD=passw0rd -p 5432:5432 -d $IMAGE postgres -c 'config_file=/etc/postgresql/postgresql.conf'

For additional resources on how to configure, you would be able to visit this link for additional details.

Publishing Official Images (for Maintainers only)

The individual scripts (above) can be used to create the correct files for an image, and then added to a new git branch, committed, etc. A release script is included to make this process easier. To make a proper release for this image, let's use the fake PostgreSQL version of v9.99, you would run the following from the repo root:

./shared/release.sh 9.99

This will automatically create a new Git branch, generate the Dockerfile(s), stage the changes, commit them, and push them to GitHub. The commit message will end with the string [release]. This string is used by CircleCI to know when to push images to Docker Hub. All that would need to be done after that is:

  • wait for build to pass on CircleCI
  • review the PR
  • merge the PR

The main branch build will then publish a release.

Incorporating Changes

How changes are incorporated into this image depends on where they come from.

build scripts - Changes within the ./shared submodule happen in its own repository. For those changes to affect this image, the submodule needs to be updated. Typically like this:

cd shared
git pull
cd ..
git add shared
git commit -m "Updating submodule for foo."

parent image - By design, when changes happen to a parent image, they don't appear in existing PostgreSQL images. This is to aid in "determinism" and prevent breaking customer builds. New Go images will automatically pick up the changes.

If you really want to publish changes from a parent image into the PostgreSQL image, you have to build a specific image version as if it was a new image. This will create a new Dockerfile and once published, a new image.

Extensions in the parent image will not have extensions enabled by default. This should be done by the user. Please refer to respective README's on how to enable, but the general idea would be to create a *.sql file in /docker-entrypoint-initdb.d/ along with custom configurations, which can be referred to in the configurations section of the README

PostgreSQL specific changes - Editing the Dockerfile.template file in this repo will modify the PostgreSQL image specifically. Don't forget that to see any of these changes locally, the gen-dockerfiles.sh script will need to be run again (see above).

Contributing

We encourage issues and pull requests against this repository.

Please check out our contributing guide which outlines best practices for contributions and what you can expect from the images team at CircleCI.

Additional Resources

CircleCI Docs - The official CircleCI Documentation website. CircleCI Configuration Reference - From CircleCI Docs, the configuration reference page is one of the most useful pages we have. It will list all of the keys and values supported in .circleci/config.yml. Docker Docs - For simple projects this won't be needed but if you want to dive deeper into learning Docker, this is a great resource.

Credit

This repository uses upstream resources from the Docker library, specifically, the docker-entrypoint

License

This repository is licensed under the MIT license. The license can be found here.

cimg-postgres's People

Contributors

bjohnso5 avatar bvalerius avatar bytesguy avatar cpe-image-bot avatar drowze avatar dwagner-evi avatar felicianotech avatar jalexchen avatar joergschiller avatar joshhsoj1902 avatar mkusaka avatar schinery avatar stig avatar villelahdenvuo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cimg-postgres's Issues

FATAL: role $USER does not exist

I am trying to run:

docker run --rm \
   -p 5432:5432 \
  -u ${POSTGRES_USER} \
  --name pc-postgres \
  -e POSTGRES_USER=${POSTGRES_USER} \
  -e POSTGRES_PASSWORD=${POSTGRES_PASSWORD} \
  -e POSTGRES_DB=${POSTGRES_DB} \
  cimg/postgres:12.9-postgis

I get the following error:

 FATAL:  role "postgres" does not exist

I tried to run createuser -s postgres inside the container as this is what google advise to do:

postgres@a6961e7bb45f:/home/circleci/project$ createuser -s postgres
createuser: error: could not connect to database template1: FATAL:  role "postgres" does not exist

The server crash, any clue what is going on ?

PG needs to be built with libxml to use XML functions.

I recommend using the official builds from apt.postgresql.org, rather than attempting to get builds correct.

PG::FeatureNotSupported: ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.

Add major version tags in addition to major.minor

At the moment circle only offers major.minor version tags for all Postgres images except for 9.6. It would be good to have the latest minor release to also have its major version as another tag, so you always pull the latest release. For example, 12.9 the latest release as of raising this issue would also have 12 as its tag.

This is useful where you want to always test your code against the latest minor version without having to update references every time there is a new Postgres minor release.

Legacy circle Postgres images were following this convention until they were deprecated. Is there a reason this wasn't carried over to new convenience images?

PostGIS images do not have the PostGIS extension enabled

When using the 14.6-postgis image for example, we are seeing the following error when attempting to use the PostGIS extension:

ERROR:  function postgis_version() does not exist at character 8
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
STATEMENT:  SELECT PostGIS_version();

We didn't realize at first that CREATE EXTENSION postgis; needs to run in order to use the extension. Is this expected or is this something that should be included as part of the image OOTB (i.e. how postgis/postgis handles it)?

PostGIS.control is unavailable

See original issue #6

We are still unable to migrate to the new cimg/postgres (postgis variant). Our build fails with the following:

SQL State  : 58P01
Error Code : 0
Message    : ERROR: could not open extension control file "/usr/lib/postgresql/13/share/extension/btree_gist.control": No such file or directory

Whilst postgis might be in the variant, postgis.control seems to not be installed.

How to configure Postgres settings

Since switching to cimg/postgres:11.13 (from circleci/postgres:11-alpine-ram) we've seen intermittent errors like:

django.db.utils.OperationalError: out of shared memory
HINT:  You might need to increase max_locks_per_transaction.

While I'm not sure if the issue is actually related to the change of image, I can't see in the docs any means to configure the Postgres instance. As this setting is one which requires a postgres restart, ideally it's something I'd configure before the container starts.

Is this a case of creating a custom image, or is there a way to overlay Postgres' configuration via CI config?

Bug Report: Support for user-defined PGDATA broken with pg_cron.sh

Describe the bug
Postgres fails to start with the following error:

grep: /var/lib/postgresql/data/postgresql.conf: No such file or directory
/docker-entrypoint-initdb.d/pg_cron.sh: line 18: /var/lib/postgresql/data/postgresql.conf: No such file or directory
cat: /var/lib/postgresql/data/postgresql.conf: No such file or directory
cat: /var/lib/postgresql/data/postgresql.conf: No such file or directory

Exited with code 1

To Reproduce
Add the docker executor to a CircleCI job config:

docker:
      - image: cimg/postgres:15.5
        environment:
          PGDATA: /dev/shm/pgdata/data

Expected behavior
Postgres starts and is using the value of PGDATA as the data directory

PostgreSQL 14.2, 13.6, 12.10, 11.15, and 10.20

Please publish new versions: 14.2, 13.6, 12.10, 11.15, and 10.20.

Also, I will be grateful if you add 14, 13, 12, 11, 10, 9, 14-postgis, 13-postgis, 12-postgis, 11-postgis, 10-postgis, and 9-postgis tags for the latest minor release of every major one. This feature exists in older circleci/postgres.

Bug Report: cron.database_name is not dynamic; fixed to circle_test

Note: We also welcome PRs to fix bugs! This helps us take action faster where a bug has been identified!

For our official CircleCI Docker Convenience Image support policy, please see CircleCI docs.

This policy outlines the release, update, and deprecation policy for CircleCI Docker Convenience Images.


Describe the bug
POSTGRES_DB and the sample circle_test db in custom-postgresql.conf should be set to a variable, not hard coded as circle_test.

this would also apply to other options like listen addresses and shared_preload_libraries

As a result, even setting POSTGRES_DB to something, would not enable an extension like pg_cron, because it would only be enabled for circle_test

Expected behavior
changing POSTGRES_DB should also affect cron.database_name

Workarounds
editing the custom-postgresql.conf manually

Screenshots and Build Links
If possible, add screenshots and links to jobs to help explain your problem.

Additional context
Add any other context about the problem here.

Floating major release tags

It would be nice to have floating major release tags -- e.g. "14" and "15", so that pulling in bug fix releases doesn't require lots of editing of CI configs.

I miss this actually in many of the cimg releases, but in postgres the most.

Bug Report: Permission error when using db example

Describe the bug
We've configured the database according to the postgres testing example in the docs: https://circleci.com/docs/databases/#postgresql-database-testing-example

when running the image step, there is a
could not change directory to "/home/circleci/project": Permission denied
and
Build was canceled

To Reproduce
Clone the example config from the docs and create a new repo.

Expected behavior
Expected the image to load without any errors

Workarounds
The tests still seem to run, can this message be safely ignored?

Screenshots and Build Links
Screen Shot 2023-06-30 at 2 35 03 PM

Here's our test repo: https://github.com/inventables/psql-test and the build: https://app.circleci.com/pipelines/github/inventables/psql-test/1/workflows/cba69c18-14c4-4627-a095-17007117e2b2/jobs/1

Additional context
Add any other context about the problem here.
The image has a WORKDIR /home/circleci/project command. I'm not sure what the reasoning is for it or if it's needed.
https://hub.docker.com/layers/cimg/postgres/13.11/images/sha256-dd0031cb27d079e6bcfdbc3c73363246ace95ddad007257887d91c2cefe11a4d?context=explore

Please release updates for 13.9, 14.6, and 15.1

These were released on November 10th, 2022. Is there a reason new PG releases take so long to get new CircleCI images released? I'm thankful for the work you do I just want to mention that it's important for many of us to get these out the door and not having our CI platform updated makes it much riskier.

PostGIS is unavailable

We have tried updating from circleci/postgres:13.3-ram to cimg/postgres:13.3 (no ram variant available). We were hoping to provide some timing feedback for our build pipeline (compared with the legacy RAM image), and if timing was comparable, be ready to move forward with the new image.

Unfortunately, we encounter several issues during our build, including:

SQL State  : 58P01
Error Code : 0
Message    : ERROR: could not open extension control file "/usr/lib/postgresql/%%MAJOR_VERSION%%/share/extension/btree_gist.control": No such file or directory
Statement  : create extension btree_gist

It seems that PostGIS is not available in these convenience images, or, something else has gone awry that I'm not understanding.

PostgreSQL Contrib extension uuid-ossp is not available

Thanks for resolving #11.

#11 (comment):

Images have been updated to include extensions that are part of the PostgreSQL Contrib package.

Can people confirm on your end that the errors went away?

I can confirm that I am getting something different, but it doesn't appear to have entirely resolved the problem. We are now getting the following in our build pipelines:

SQL State  : 58P01
Error Code : 0
Message    : ERROR: could not open extension control file "/usr/lib/postgresql/13/share/extension/uuid-ossp.control": No such file or directory
Statement  : create extension "uuid-ossp"

and in the Postgres image container output, the corresponding:

2021-11-04 02:19:51.485 UTC [1407] ERROR:  could not open extension control file "/usr/lib/postgresql/13/share/extension/uuid-ossp.control": No such file or directory
2021-11-04 02:19:51.485 UTC [1407] STATEMENT:  create extension "uuid-ossp"

cimg/postgres:9.6 failing after swapping it out with circleci/postgres:9.6

Hey

We swapped out our old circleci/postgres:9.6 with cimg/postgres:9.6as a test. Initially it complained about POSTGRES_PASSWORDnot being set. After resolving that issue the build step is now met with the error below. Am I missing something obvious? Seems to be failing to find the major version?

Our executioner looks like this:

 java-postgres:
    docker:
      - image: cimg/openjdk:11.0
      - image: cimg/postgres:9.6
        environment:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: postgres

The error:

This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default timezone ... Etc/UTC
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    pg_ctl -D /var/lib/postgresql/data -l logfile start

waiting for server to start....FATAL:  the database system is starting up
LOG:  database system was shut down at 2021-07-08 11:50:23 UTC
.LOG:  MultiXact member wraparound protections are now enabled
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started
 done
server started

/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*

waiting for server to shut down....LOG:  received fast shutdown request
LOG:  aborting any active transactions
LOG:  autovacuum launcher shutting down
LOG:  shutting down
.......LOG:  database system is shut down
 done
server stopped

PostgreSQL init process complete; ready for start up.

LOG:  database system was shut down at 2021-07-08 11:50:34 UTC
LOG:  MultiXact member wraparound protections are now enabled
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started
ERROR:  relation "public.databasechangeloglock" does not exist at character 22
STATEMENT:  SELECT COUNT(*) FROM public.databasechangeloglock
ERROR:  relation "public.databasechangeloglock" does not exist at character 22
STATEMENT:  SELECT COUNT(*) FROM public.databasechangeloglock
ERROR:  relation "public.databasechangeloglock" does not exist at character 22
STATEMENT:  SELECT COUNT(*) FROM public.databasechangeloglock
ERROR:  relation "public.databasechangeloglock" does not exist at character 22
STATEMENT:  SELECT COUNT(*) FROM public.databasechangeloglock
ERROR:  could not open extension control file "/usr/lib/postgresql/%%MAJOR_VERSION%%/share/extension/uuid-ossp.control": No such file or directory
STATEMENT:  CREATE EXTENSION IF NOT EXISTS "uuid-ossp"
 ...
<lines keep repeating til it cancels>
...
Build was canceled```

I attempted with higher postgres versions and got the same result.

Bug Report: CVE-2024-0985 PostgreSQL security alert

Describe the bug
Restricted users can exploit materialized views to increase their permissions.
There is a detailed bug description at https://www.postgresql.org/support/security/CVE-2024-0985/

To Reproduce
See above.

Expected behavior
Materialized views get executed in the scope of the authenticated user.

Workarounds
n/a

Screenshots and Build Links
n/a

Additional context
The Postgres image shall be updated to a fixed version:

  • 15.6
  • 14.11
  • 13.14
  • 12.18

Postgres ftp source is not real time

While we are checking for the postgres version on their github, which is real time, the link we use to build postgresql, ftp.postgresql.org, is not updated, which results in a failed build.

two options i can think of:

  • we create from a source tarball that is available with the announcement of the release
  • implement a check to see if the version is available for download at the ftp url

Swedish locale is missing

We are using the circle postgres 9.6 image to execute tests against a real database. We have been using the image circleci/postgres:9.6-alpine-ram without issues. Now when I try switching to cimg/postgres:9.6-postgis I get an error message about missing locale:

ERROR:  invalid locale name: "sv_SE.UTF-8"

I tried getting around this by putting locale-gen sv_SE.UTF-8 in the startup command for the postgres image, but to no success. I am unable to get it to generate the locale and start postgres.

docker:
  - image: cimg/go:1.17
  - image: cimg/postgres:9.6-postgis
    command: locale-gen sv_SE.UTF-8
    environment:
        POSTGRES_USER: xxx
        POSTGRES_DB: xxx

I also gave it a go using the postgres 13.4 image, but the locale is missing there too. Is this a mistake, or a deliberate omission?

Postgres 12.0 image

Similar to #41 , our team is in the process of switching out convenience images and have noticed that there is no 12.0 image. We would like to know if it is possible to add support for this version that includes minor version fixes as well.

Postgres 11.14 image

I'm in the process of switching some circleci images to their cimg equivalents and one of them is Postgres 11.14, however there doesn't appear to be an image currently available for this.

Looking at #30 I can see that 11.4 was added, wonder if this was meant to of been 11.14?

I've taken a stab at generating a PR to add a 11.14 image here - #40.

Request to add pgTAP variant

pgTAP is a unit testing toolkit for postgres and CI is a natural place where one would need the test databse to have it available.

Demand for this can be evident from a number of derivative Dockerfiles in the wild that adds pgTap on top of the CircleCI image. These are all unfortunately no longer maintained and based on the legacy images.

It would be great if CCI can support this as an official image.

Postgres 13.4 Failed to start

Summary

Currently Postgres fails to start when running:

docker run --rm -it cimg/postgres:13.4

or from CircleCI:

executors:
  default:
    working_directory: ~/repo
    docker:
      - image: cimg/postgres:13.4

Last bit of the logs:

Success. You can now start the database server using:

    pg_ctl -D /var/lib/postgresql/data -l logfile start

waiting for server to start....2021-11-16 03:38:50.202 UTC [53] LOG:  starting PostgreSQL 13.4 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bit
2021-11-16 03:38:50.204 UTC [53] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2021-11-16 03:38:50.210 UTC [54] LOG:  database system was shut down at 2021-11-16 03:38:49 UTC
2021-11-16 03:38:50.217 UTC [53] LOG:  database system is ready to accept connections
 done
server started
psql: error: could not connect to server: No such file or directory
	Is the server running locally and accepting
	connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Feature Request: Add `pgvector` extension

Describe the Feature Request
Add the pgvector extension to CircleCI's cimg-postgres Docker image to support efficient storage and search of vector data from machine learning models, aligning with industry trends towards ML integration. E.g. Amazon RDS installs the extension in their Postgres datbases.

Is your feature request related to a particular problem?

Yes, the absence of pgvector necessitates custom Docker images, slowing down CI/CD pipelines and introducing potential inconsistencies.

How will this feature request benefit CircleCI jobs using this image?

Incorporating pgvector will streamline workflows for ML projects, reduce setup times, and offer a consistent environment, making CircleCI more attractive to developers working with vector embeddings.

Describe the solution you would like to see

The pgvector extension installed by default in the cimg-postgres Docker image, compatible with its PostgreSQL versions and easily enabled via CREATE EXTENSION vector;

Describe alternatives you have considered

Manually installing pgvector or creating a custom Docker image. The former isn't possible and the latter is cumbersome and increases complexity.

Still can't use this if PG extensions are in use

e.g.:

ActiveRecord::StatementInvalid: PG::UndefinedFile: ERROR:  
could not open extension control file "/usr/lib/postgresql/13/share/extension/citext.control": 
No such file or directory

why can't these be shipped?

Feature Request: pg_cron configurable OR provide an image without it

For our official CircleCI Docker Convenience Image support policy, please see CircleCI docs.

This policy outlines the release, update, and deprecation policy for CircleCI Docker Convenience Images.


Describe the Feature Request
Allow for a way to exclude the pg_cron shared library OR provide a new image without pg_cron.

See support ticket https://support.circleci.com/hc/en-us/requests/145723

Is your feature request related to a particular problem?
The current image comes with pg_cron configured out of the box. This means that the pg_cron scheduler is launched on boot which will hold on to a connection to any test database. This is not ideal, since it breaks any build pipeline depending on dropping a test database as part of any test setup code (this is very common in a Rails app, for example).

We are unable to upgrade our build pipeline to anything after PG14.8. I believe there was a fix to pg_cron for 14.9. We are currently trying to upgrade to PG15.5, with the same problem.

How will this feature request benefit CircleCI jobs using this image?
We and others will be able to upgrade to an image after PG14.8 if we have jobs relying to dropping a database before setting it up for tests etc.

Describe the solution you would like to see
I'd like an easy configuration setting in the config.yml file OR a new image without the pg_cron shared libraries installed.

Describe alternatives you have considered
Adding custom logic to the build pipeline that terminates the pg_cron scheduler. This does add a certain amount of tech debt in our build pipeline - but, more importantly, it doesn't actually work since the pg_cron scheduler restarts itself when the pid is terminated.

CircleCI can't source Postgres Image

Trying to set up tests in our CI pipeline using the cimg/postgres:14.1.0 image and when it runs in CI I am getting this - Error response from daemon: manifest for cimg/postgres:14.1.0 not found: manifest unknown: manifest unknown

Literally copied and pasted the image tag from the docs, also can't seem to find it on DockerHub

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.