41 lines
1.2 KiB
Bash
Executable File
41 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
CONTAINER_NAME="sms-postgres"
|
|
VOLUME_NAME="sms-postgres-data"
|
|
IMAGE="postgres:16"
|
|
PORT="5432"
|
|
POSTGRES_USER="sms"
|
|
POSTGRES_PASSWORD="sms"
|
|
POSTGRES_DB="sms_task"
|
|
|
|
if ! command -v docker >/dev/null 2>&1; then
|
|
echo "docker не найден. Установите Docker и повторите." >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Останавливаю и удаляю контейнер ${CONTAINER_NAME}..."
|
|
docker rm -f "${CONTAINER_NAME}" >/dev/null 2>&1 || true
|
|
|
|
echo "Удаляю том ${VOLUME_NAME}..."
|
|
docker volume rm "${VOLUME_NAME}" >/dev/null 2>&1 || true
|
|
|
|
echo "Запускаю PostgreSQL (${IMAGE})..."
|
|
docker run -d \
|
|
--name "${CONTAINER_NAME}" \
|
|
-e POSTGRES_USER="${POSTGRES_USER}" \
|
|
-e POSTGRES_PASSWORD="${POSTGRES_PASSWORD}" \
|
|
-e POSTGRES_DB="${POSTGRES_DB}" \
|
|
-p "${PORT}:5432" \
|
|
-v "${VOLUME_NAME}:/var/lib/postgresql/data" \
|
|
"${IMAGE}" >/dev/null
|
|
|
|
echo "Готово."
|
|
echo " Host: localhost:${PORT}"
|
|
echo " Database: ${POSTGRES_DB}"
|
|
echo " User: ${POSTGRES_USER}"
|
|
echo " Password: ${POSTGRES_PASSWORD}"
|
|
echo ""
|
|
echo "Connection string:"
|
|
echo " Host=localhost;Port=${PORT};Database=${POSTGRES_DB};Username=${POSTGRES_USER};Password=${POSTGRES_PASSWORD}"
|