Customize pg_hba.conf on Docker compose

758 Views Asked by At

Trying to set up a Django multicontainer application for local development purposes. I haven't found a way to customize pg_hba.conf and postgresql.conf directly from the compose file. I don't want to rely on external scripts or even external files to be copied to the container since the pg_hba.conf and postgresql.conf are rather simple and additional files would add clutter in the project directory. Having a second Dockerfile for the database also is not an optimal solution for me since, as stated, I just need a few lines to be configured/uncommented on those target files.

Below, the current configuration for my compose file.

version: '3.8'

services:

#-------------------------------------------------------#
  # postgres 
  suapdb:
    hostname: 'suapdb'
    ports:
      - "5432:5432"
    environment: 
      POSTGRES_USER: postgres
      POSTGRES_HOST_AUTH_METHOD: trust
      POSTGRES_PASSWORD: '' 
      POSTGRES_DB: suap_dev
      PGDATA: /var/lib/postgresql/data/
    networks:
      - suap_dev_net
    volumes:
      - postgres:/var/lib/postgresql/data
    command: >
      ash -c "echo host all all 0.0.0.0/0 trust > /var/lib/postgresql/data/pg_hba.conf &&
             echo local all postgres trust >> /var/lib/postgresql/data/pg_hba.conf &&
             echo local all all ident >> /var/lib/postgresql/data/pg_hba.conf &&
             echo listen_addresses = \'*\' >> /var/lib/postgresql/data/postgresql.conf"
    image: postgres:13-alpine

The commented lines on the suapdb service are the ones I hoped would work out (as I have seen in other posts) but it hasn't.

Any contribution appreciated.

1

There are 1 best solutions below

0
Corina Roca On

I tried also to modify the postgresql config file arguments and I found this post (How to customize the configuration file of the official PostgreSQL Docker image?) where basically they place this example to put in the compose.yaml file:

services:
  postgres:
    ...
    command:
      - "postgres"
      - "-c"
      - "max_connections=1000"
      - "-c"
      - "shared_buffers=3GB"
      - "-c"
      ...

It is actually the accepted answer for that question.