From 9385e45c8e4a616149cbdb03485afa8ba5e4ade5 Mon Sep 17 00:00:00 2001 From: knoflook Date: Tue, 27 Sep 2022 15:00:08 +0200 Subject: [PATCH] entrypoint not working --- abra.sh | 1 + compose.yml | 35 ++++++++++++++++++++++++----------- pg_entrypoint.sh | 16 ++++++++++++++++ 3 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 pg_entrypoint.sh diff --git a/abra.sh b/abra.sh index 203ae76..d4dde0a 100644 --- a/abra.sh +++ b/abra.sh @@ -1 +1,2 @@ export NGINX_CONFIG_VERSION=v1 +export POSTGRES_ENTRYPOINT_VERSION=v1 diff --git a/compose.yml b/compose.yml index 3942e3b..3663979 100644 --- a/compose.yml +++ b/compose.yml @@ -37,7 +37,7 @@ services: networks: - internal depends_on: - - postgres + - db - redis volumes: - "shiv_data:/root/.shiv" @@ -90,7 +90,7 @@ services: - LISTEN_HOST=0.0.0.0 - LISTEN_SERVER=uvicorn - SECRET_KEY=foobar - - DATABASE_HOST=postgres + - DATABASE_HOST=db - DATABASE_PORT=5432 - DATABASE_NAME=karrot - DATABASE_USER=karrot @@ -116,13 +116,18 @@ services: networks: - internal - postgres: + db: image: "postgres:14-alpine" healthcheck: test: ["CMD-SHELL", "pg_isready -U karrot"] interval: 1s timeout: 3s retries: 30 + configs: + - source: postgres_entrypoint + target: /coopcloud-entrypoint.sh + mode: 0555 + entrypoint: /coopcloud-entrypoint.sh volumes: - "postgres_data:/var/lib/postgresql/data" networks: @@ -131,7 +136,22 @@ services: - POSTGRES_PASSWORD=karrot - POSTGRES_USER=karrot - POSTGRES_DB=karrot - + + +secrets: + db_password: + external: true + name: ${STACK_NAME}_db_password_${SECRET_DB_PASSWORD_VERSION} + +configs: + nginx_config: + name: ${STACK_NAME}_nginx_config_${NGINX_CONFIG_VERSION} + file: nginx.conf.tmpl + template_driver: golang + postgres_entrypoint: + name: ${STACK_NAME}_postgres_entrypoint_${POSTGRES_ENTRYPOINT_VERSION} + file: pg_entrypoint.sh + volumes: shiv_data: geoip_data: @@ -142,10 +162,3 @@ networks: proxy: external: true internal: - - -configs: - nginx_config: - name: ${STACK_NAME}_nginx_config_${NGINX_CONFIG_VERSION} - file: nginx.conf.tmpl - template_driver: golang diff --git a/pg_entrypoint.sh b/pg_entrypoint.sh new file mode 100644 index 0000000..1c36312 --- /dev/null +++ b/pg_entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# This is based on https://github.com/postgis/docker-postgis/blob/4eb614133d6aa87bfc5c952d24b7eb1f499e5c7c/12-3.0/initdb-postgis.sh +set -e + +# Perform all actions as $POSTGRES_USER +export PGUSER="$POSTGRES_USER" + +for DB in template1 "$POSTGRES_DB"; do + echo "Loading extensions into $DB" + "${psql[@]}" --dbname="$DB" <<-'EOSQL' + CREATE EXTENSION IF NOT EXISTS citext; + CREATE EXTENSION IF NOT EXISTS btree_gist; + EOSQL +done + +/docker-entrypoint.sh "$@"