mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2024-11-26 11:34:00 +03:00
parent
dd0a73a985
commit
5543359382
|
@ -113,10 +113,11 @@ Consider the aforementioned ``.envs/.local/.postgres``: ::
|
||||||
|
|
||||||
# PostgreSQL
|
# PostgreSQL
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
POSTGRES_DB=<your project slug>
|
||||||
POSTGRES_USER=XgOWtQtJecsAbaIyslwGvFvPawftNaqO
|
POSTGRES_USER=XgOWtQtJecsAbaIyslwGvFvPawftNaqO
|
||||||
POSTGRES_PASSWORD=jSljDz4whHuwO3aJIgVBrqEml5Ycbghorep4uVJ4xjDYQu0LfuTZdctj7y0YcCLu
|
POSTGRES_PASSWORD=jSljDz4whHuwO3aJIgVBrqEml5Ycbghorep4uVJ4xjDYQu0LfuTZdctj7y0YcCLu
|
||||||
|
|
||||||
The two envs we are presented with here are ``POSTGRES_USER``, and ``POSTGRES_PASSWORD`` (by the way, their values have also been generated for you). You might have figured out already where these definitions will end up; it's all the same with ``django`` and ``caddy`` service container envs.
|
The three envs we are presented with here are ``POSTGRES_DB``, ``POSTGRES_USER``, and ``POSTGRES_PASSWORD`` (by the way, their values have also been generated for you). You might have figured out already where these definitions will end up; it's all the same with ``django`` and ``caddy`` service container envs.
|
||||||
|
|
||||||
|
|
||||||
Tips & Tricks
|
Tips & Tricks
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
# PostgreSQL
|
# PostgreSQL
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
POSTGRES_DB={{ cookiecutter.project_slug }}
|
||||||
POSTGRES_USER=!!!SET POSTGRES_USER!!!
|
POSTGRES_USER=!!!SET POSTGRES_USER!!!
|
||||||
POSTGRES_PASSWORD=!!!SET POSTGRES_PASSWORD!!!
|
POSTGRES_PASSWORD=!!!SET POSTGRES_PASSWORD!!!
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
# PostgreSQL
|
# PostgreSQL
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
POSTGRES_DB={{ cookiecutter.project_slug }}
|
||||||
POSTGRES_USER=!!!SET POSTGRES_USER!!!
|
POSTGRES_USER=!!!SET POSTGRES_USER!!!
|
||||||
POSTGRES_PASSWORD=!!!SET POSTGRES_PASSWORD!!!
|
POSTGRES_PASSWORD=!!!SET POSTGRES_PASSWORD!!!
|
||||||
|
|
|
@ -2,45 +2,47 @@
|
||||||
|
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
set -o nounset
|
||||||
# todo: turn on after #1295
|
|
||||||
# set -o nounset
|
|
||||||
|
|
||||||
|
|
||||||
cmd="$@"
|
cmd="$@"
|
||||||
|
|
||||||
# This entrypoint is used to play nicely with the current cookiecutter configuration.
|
|
||||||
# Since docker-compose relies heavily on environment variables itself for configuration, we'd have to define multiple
|
|
||||||
# environment variables just to support cookiecutter out of the box. That makes no sense, so this little entrypoint
|
|
||||||
# does all this for us.
|
|
||||||
export REDIS_URL=redis://redis:6379
|
export REDIS_URL=redis://redis:6379
|
||||||
|
{%- if cookiecutter.use_celery == 'y' %}
|
||||||
|
export CELERY_BROKER_URL="${REDIS_URL}/0"
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
# the official postgres image uses 'postgres' as default user if not set explictly.
|
if [ -z "${POSTGRES_USER}" ]; then
|
||||||
if [ -z "$POSTGRES_USER" ]; then
|
# the official postgres image uses 'postgres' as default user if not set explictly.
|
||||||
export POSTGRES_USER=postgres
|
export POSTGRES_USER=postgres
|
||||||
fi
|
fi
|
||||||
|
export DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}"
|
||||||
export DATABASE_URL=postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres:5432/$POSTGRES_USER
|
|
||||||
{% if cookiecutter.use_celery == 'y' %}
|
|
||||||
export CELERY_BROKER_URL=$REDIS_URL/0
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
postgres_ready() {
|
postgres_ready() {
|
||||||
python << END
|
python << END
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import psycopg2
|
import psycopg2
|
||||||
|
|
||||||
try:
|
try:
|
||||||
conn = psycopg2.connect(dbname="$POSTGRES_USER", user="$POSTGRES_USER", password="$POSTGRES_PASSWORD", host="postgres")
|
psycopg2.connect(
|
||||||
|
dbname="${POSTGRES_DB}",
|
||||||
|
user="${POSTGRES_USER}",
|
||||||
|
password="${POSTGRES_PASSWORD}",
|
||||||
|
host="postgres"
|
||||||
|
)
|
||||||
except psycopg2.OperationalError:
|
except psycopg2.OperationalError:
|
||||||
sys.exit(-1)
|
sys.exit(-1)
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
END
|
END
|
||||||
}
|
}
|
||||||
|
|
||||||
until postgres_ready; do
|
until postgres_ready; do
|
||||||
>&2 echo "Postgres is unavailable - sleeping"
|
>&2 echo 'PostgreSQL is unavailable (sleeping)...'
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
|
||||||
>&2 echo "Postgres is up - continuing..."
|
>&2 echo 'PostgreSQL is up - continuing...'
|
||||||
|
|
||||||
exec $cmd
|
exec $cmd
|
||||||
|
|
Loading…
Reference in New Issue
Block a user