Skip to content

Commit 1b62d31

Browse files
committed
Add versioned conf files for postgresql image
1 parent 39a8996 commit 1b62d31

File tree

4 files changed

+916
-1
lines changed

4 files changed

+916
-1
lines changed

docker-compose.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,9 @@ services:
162162
POSTGRES_PASSWORD: '${POSTGRES_PASSWORD}'
163163
POSTGRES_USER: '${POSTGRES_USER}'
164164
POSTGRES_DB: '${POSTGRES_DB}'
165-
PGDATA: '/var/lib/postgresql/mapswipe'
165+
# point to where the config files are located
166+
# see https://www.postgresql.org/docs/current/runtime-config-file-locations.html
167+
PGDATA: '/'
166168
WALG_GS_PREFIX: '${WALG_GS_PREFIX}'
167169
GOOGLE_APPLICATION_CREDENTIALS: '/serviceAccountKey.json'
168170
# Set options for WAL-G (backup tool)

postgres/Dockerfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ FROM mdillon/postgis
33
COPY initdb.sql docker-entrypoint-initdb.d/
44
COPY serviceAccountKey.json serviceAccountKey.json
55

6+
# use our version controlled config files instead of the
7+
# ones found in the data volume
8+
COPY pg_hba.conf pg_hba.conf
9+
COPY postgresql.conf postgresql.conf
10+
611
# Copy backup scripts and make them executable
712
COPY backup/make_basebackup.sh make_basebackup.sh
813
COPY backup/archive_command.sh archive_command.sh

postgres/pg_hba.conf

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# PostgreSQL Client Authentication Configuration File
2+
# ===================================================
3+
#
4+
# Refer to the "Client Authentication" section in the PostgreSQL
5+
# documentation for a complete description of this file. A short
6+
# synopsis follows.
7+
#
8+
# This file controls: which hosts are allowed to connect, how clients
9+
# are authenticated, which PostgreSQL user names they can use, which
10+
# databases they can access. Records take one of these forms:
11+
#
12+
# local DATABASE USER METHOD [OPTIONS]
13+
# host DATABASE USER ADDRESS METHOD [OPTIONS]
14+
# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
15+
# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
16+
# hostgssenc DATABASE USER ADDRESS METHOD [OPTIONS]
17+
# hostnogssenc DATABASE USER ADDRESS METHOD [OPTIONS]
18+
#
19+
# (The uppercase items must be replaced by actual values.)
20+
#
21+
# The first field is the connection type:
22+
# - "local" is a Unix-domain socket
23+
# - "host" is a TCP/IP socket (encrypted or not)
24+
# - "hostssl" is a TCP/IP socket that is SSL-encrypted
25+
# - "hostnossl" is a TCP/IP socket that is not SSL-encrypted
26+
# - "hostgssenc" is a TCP/IP socket that is GSSAPI-encrypted
27+
# - "hostnogssenc" is a TCP/IP socket that is not GSSAPI-encrypted
28+
#
29+
# DATABASE can be "all", "sameuser", "samerole", "replication", a
30+
# database name, or a comma-separated list thereof. The "all"
31+
# keyword does not match "replication". Access to replication
32+
# must be enabled in a separate record (see example below).
33+
#
34+
# USER can be "all", a user name, a group name prefixed with "+", or a
35+
# comma-separated list thereof. In both the DATABASE and USER fields
36+
# you can also write a file name prefixed with "@" to include names
37+
# from a separate file.
38+
#
39+
# ADDRESS specifies the set of hosts the record matches. It can be a
40+
# host name, or it is made up of an IP address and a CIDR mask that is
41+
# an integer (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that
42+
# specifies the number of significant bits in the mask. A host name
43+
# that starts with a dot (.) matches a suffix of the actual host name.
44+
# Alternatively, you can write an IP address and netmask in separate
45+
# columns to specify the set of hosts. Instead of a CIDR-address, you
46+
# can write "samehost" to match any of the server's own IP addresses,
47+
# or "samenet" to match any address in any subnet that the server is
48+
# directly connected to.
49+
#
50+
# METHOD can be "trust", "reject", "md5", "password", "scram-sha-256",
51+
# "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert".
52+
# Note that "password" sends passwords in clear text; "md5" or
53+
# "scram-sha-256" are preferred since they send encrypted passwords.
54+
#
55+
# OPTIONS are a set of options for the authentication in the format
56+
# NAME=VALUE. The available options depend on the different
57+
# authentication methods -- refer to the "Client Authentication"
58+
# section in the documentation for a list of which options are
59+
# available for which authentication methods.
60+
#
61+
# Database and user names containing spaces, commas, quotes and other
62+
# special characters must be quoted. Quoting one of the keywords
63+
# "all", "sameuser", "samerole" or "replication" makes the name lose
64+
# its special character, and just match a database or username with
65+
# that name.
66+
#
67+
# This file is read on server startup and when the server receives a
68+
# SIGHUP signal. If you edit the file on a running system, you have to
69+
# SIGHUP the server for the changes to take effect, run "pg_ctl reload",
70+
# or execute "SELECT pg_reload_conf()".
71+
#
72+
# Put your actual configuration here
73+
# ----------------------------------
74+
#
75+
# If you want to allow non-local connections, you need to add more
76+
# "host" records. In that case you will also need to make PostgreSQL
77+
# listen on a non-local interface via the listen_addresses
78+
# configuration parameter, or via the -i or -h command line switches.
79+
80+
81+
82+
83+
# DO NOT DISABLE!
84+
# If you change this first entry you will need to make sure that the
85+
# database superuser can access the database using some other method.
86+
# Noninteractive access to all databases is required during automatic
87+
# maintenance (custom daily cronjobs, replication, and similar tasks).
88+
#
89+
# Database administrative login by Unix domain socket
90+
local all postgres peer
91+
92+
# TYPE DATABASE USER ADDRESS METHOD
93+
94+
# "local" is for Unix domain socket connections only
95+
local all all peer
96+
# IPv4 local connections:
97+
host all all 127.0.0.1/32 scram-sha-256
98+
# IPv6 local connections:
99+
host all all ::1/128 scram-sha-256
100+
# Allow replication connections from localhost, by a user with the
101+
# replication privilege.
102+
local replication all peer
103+
host replication all 127.0.0.1/32 scram-sha-256
104+
host replication all ::1/128 scram-sha-256

0 commit comments

Comments
 (0)