Ah, all run commands are executed in the context of the first image (the Ruby/Node image), so you’d be installing PostgreSQL GIS on your build image that (presumably) does not actually have PostgreSQL on it.
If you want to install the GIS stuff, you’d need to do it on an container containing PostgreSQL. There’s a few ways to do this:
Drop the second image and install PostgreSQL server itself in your build image
Create a separate Git repo and CircleCI project to build a PostgreSQL + GIS image and then pull this in to use it. I’ve not done this, but I believe it is possible.
Create a custom PostgreSQL + GIS image and pull this in to run it in a Docker Compose configuration