add initdb script
This commit is contained in:
parent
b3ceb1d46d
commit
ad3a53bed7
@ -1,5 +1,7 @@
|
|||||||
---
|
---
|
||||||
postgres_image: "docker.io/library/postgres:latest"
|
postgres_image: "docker.io/library/postgres:latest"
|
||||||
|
postgres_uid: 999
|
||||||
|
postgres_gid: 999
|
||||||
|
|
||||||
# @var postgres_volumes:description: > Define required docker volumes.
|
# @var postgres_volumes:description: > Define required docker volumes.
|
||||||
# @end
|
# @end
|
||||||
@ -11,6 +13,8 @@ postgres_image: "docker.io/library/postgres:latest"
|
|||||||
# type: volume
|
# type: volume
|
||||||
# @end
|
# @end
|
||||||
postgres_volumes:
|
postgres_volumes:
|
||||||
|
- name: "postgres-initdb"
|
||||||
|
dest: "/docker-entrypoint-initdb.d"
|
||||||
- name: "postgres-data"
|
- name: "postgres-data"
|
||||||
dest: /var/lib/postgresql/data
|
dest: /var/lib/postgresql/data
|
||||||
|
|
||||||
|
10
files/init-user-db.sh
Normal file
10
files/init-user-db.sh
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ -n "$POSTGRES_APP_USER" ]; then
|
||||||
|
psql -v ON_ERROR_STOP=1 --username "${POSTGRES_USER:-postgres}" --dbname "$" <<-EOSQL
|
||||||
|
CREATE USER $POSTGRES_APP_USER with encrypted password '$POSTGRES_APP_PASSWORD';
|
||||||
|
GRANT CREATE, CONNECT ON DATABASE ${POSTGRES_DB:-postgres} TO $POSTGRES_APP_USER;
|
||||||
|
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, UPDATE, INSERT, DELETE, REFERENCES ON TABLES TO $POSTGRES_APP_USER;
|
||||||
|
EOSQL
|
||||||
|
fi
|
@ -46,6 +46,15 @@
|
|||||||
mode: "0640"
|
mode: "0640"
|
||||||
notify: __postgres_restart
|
notify: __postgres_restart
|
||||||
|
|
||||||
|
- name: Deploy init-user-db
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: init-user-db.sh
|
||||||
|
dest: "{{ __postgres_volumes_map['postgres-initdb'] }}"
|
||||||
|
owner: "{{ postgres_uid }}"
|
||||||
|
group: "{{ postgres_gid }}"
|
||||||
|
mode: "0644"
|
||||||
|
when: "'postgres-initdb' in __postgres_volumes_map"
|
||||||
|
|
||||||
- name: Ensure service state
|
- name: Ensure service state
|
||||||
systemd:
|
systemd:
|
||||||
name: "postgres.service"
|
name: "postgres.service"
|
||||||
|
@ -13,8 +13,8 @@ EnvironmentFile=/etc/containers/systemd/postgres.sys.env
|
|||||||
Image={{ postgres_image }}
|
Image={{ postgres_image }}
|
||||||
Exec=postgres $POSTGRES_ARGS
|
Exec=postgres $POSTGRES_ARGS
|
||||||
EnvironmentFile=/etc/containers/systemd/postgres.env
|
EnvironmentFile=/etc/containers/systemd/postgres.env
|
||||||
User=999
|
User={{ postgres_uid }}
|
||||||
Group=999
|
Group={{ postgres_gid }}
|
||||||
{% for item in postgres_volumes %}
|
{% for item in postgres_volumes %}
|
||||||
Volume={{ item.name }}:{{ item.dest }}{{ ":" + item.opts if item.opts is defined else "" }}
|
Volume={{ item.name }}:{{ item.dest }}{{ ":" + item.opts if item.opts is defined else "" }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
Loading…
Reference in New Issue
Block a user