feat: re-allow dashes in names
This PR allows dashes in service names, while still sanitizing them before they are used as database names. If the datastore is pre-existing, the datatabase name is assumed to be the same as the service name, and returned appropriately.
This commit is contained in:
@@ -58,6 +58,8 @@ service_create() {
|
||||
else
|
||||
echo "" >"$SERVICE_ROOT/ENV"
|
||||
fi
|
||||
|
||||
write_database_name "$SERVICE"
|
||||
service_create_container "$SERVICE"
|
||||
}
|
||||
|
||||
@@ -67,6 +69,7 @@ service_create_container() {
|
||||
local SERVICE_HOST_ROOT="$PLUGIN_DATA_HOST_ROOT/$SERVICE"
|
||||
local SERVICE_NAME="$(get_service_name "$SERVICE")"
|
||||
local PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")"
|
||||
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
||||
local PREVIOUS_ID
|
||||
|
||||
ID=$(docker run --name "$SERVICE_NAME" -v "$SERVICE_HOST_ROOT/data:/var/lib/postgresql/data" -e "POSTGRES_PASSWORD=$PASSWORD" --env-file="$SERVICE_ROOT/ENV" -d --restart always --label dokku=service --label dokku.service=postgres "$PLUGIN_IMAGE:$PLUGIN_IMAGE_VERSION")
|
||||
@@ -76,7 +79,6 @@ service_create_container() {
|
||||
docker run --rm --link "$SERVICE_NAME:$PLUGIN_COMMAND_PREFIX" dokku/wait:0.3.0 -p "$PLUGIN_DATASTORE_WAIT_PORT" >/dev/null
|
||||
|
||||
dokku_log_verbose_quiet "Creating container database"
|
||||
DATABASE_NAME="$(get_database_name "$SERVICE")"
|
||||
docker exec "$SERVICE_NAME" su - postgres -c "createdb -E utf8 $DATABASE_NAME" 2>/dev/null || dokku_log_verbose_quiet 'Already exists'
|
||||
|
||||
dokku_log_verbose_quiet "Securing connection to database"
|
||||
@@ -148,9 +150,8 @@ service_start() {
|
||||
service_url() {
|
||||
local SERVICE="$1"
|
||||
local SERVICE_ROOT="$PLUGIN_DATA_ROOT/$SERVICE"
|
||||
|
||||
local PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")"
|
||||
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
||||
local SERVICE_DNS_HOSTNAME="$(service_dns_hostname "$SERVICE")"
|
||||
local DATABASE_NAME="$(get_database_name "$SERVICE")"
|
||||
local PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")"
|
||||
echo "$PLUGIN_SCHEME://postgres:$PASSWORD@$SERVICE_DNS_HOSTNAME:${PLUGIN_DATASTORE_PORTS[0]}/$DATABASE_NAME"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user