From 55863b75ba9e60484cf904649abb8a9ae558866f Mon Sep 17 00:00:00 2001 From: Arseny Balobanov Date: Thu, 31 Mar 2022 17:40:40 +0300 Subject: [PATCH] Add instructions to run databases in docker. --- dao/README.md | 22 ++++++++++++++++++++++ dao/docker-compose.yaml | 10 ++++++++++ dockertest/README.md | 2 -- ledger/README.md | 2 +- ledger/docker-compose.yaml | 10 ++++++++++ shopfront/README.md | 8 ++++++++ 6 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 dao/docker-compose.yaml create mode 100644 ledger/docker-compose.yaml diff --git a/dao/README.md b/dao/README.md index 314ee1a..63b7e72 100644 --- a/dao/README.md +++ b/dao/README.md @@ -22,3 +22,25 @@ sudo apt install postgresql Тесты сами запускают базу данных в начале, и останавливают её в конце. База данных работает от текущего пользователя во временной директории. + +## Запуск postgres в docker + +Даже если у вас linux (и уж тем более, если нет), вы можете не захотеть ставить postgres в систему. +Альтернативный способ — запустить бд в докере. + +Для этого нужно установить docker и docker-compose по инструкции из [dockertest](../dockertest/README.md). +Добвиться успешного запуска +``` +go test -v ./dockertest/... +``` + +Запускать тесты можно будет так: +``` +(cd dao && docker-compose up -d && sleep 1 && env PGCONN="host=127.0.0.1 port=5432 database=shad-go user=gopher password=pass" go test -v ./... -count=1 || true && docker-compose down) +``` +Эта команда стартует docker с postgresql, запускает тесты, передав им DSN через переменную окружения, удаляет контейнеры в конце. + +Как подчистить контейнеры, если что-то пошло не так: +``` +(cd dao && docker-compose down) +``` diff --git a/dao/docker-compose.yaml b/dao/docker-compose.yaml new file mode 100644 index 0000000..0bc4782 --- /dev/null +++ b/dao/docker-compose.yaml @@ -0,0 +1,10 @@ +version: '3' +services: + pg: + image: postgres:latest + environment: + POSTGRES_DB: shad-go + POSTGRES_USER: gopher + POSTGRES_PASSWORD: pass + ports: + - 5432:5432 diff --git a/dockertest/README.md b/dockertest/README.md index 7232814..2dc6fe0 100644 --- a/dockertest/README.md +++ b/dockertest/README.md @@ -9,8 +9,6 @@ go test -v ./dockertest/... -count=1 ``` -Только **после того, как тесты пройдут локально,** можете запушить решение в систему. - ### С чего начать?
diff --git a/ledger/README.md b/ledger/README.md index eefe504..c1b3db1 100644 --- a/ledger/README.md +++ b/ledger/README.md @@ -16,4 +16,4 @@ Мы рекомендуем использовать функциональность `SELECT FOR UPDATE`. -Комментарии по запуску postgres смотрите в задаче `dao`. \ No newline at end of file +Комментарии по запуску postgres смотрите в задаче [dao](../dao/). diff --git a/ledger/docker-compose.yaml b/ledger/docker-compose.yaml new file mode 100644 index 0000000..0bc4782 --- /dev/null +++ b/ledger/docker-compose.yaml @@ -0,0 +1,10 @@ +version: '3' +services: + pg: + image: postgres:latest + environment: + POSTGRES_DB: shad-go + POSTGRES_USER: gopher + POSTGRES_PASSWORD: pass + ports: + - 5432:5432 diff --git a/shopfront/README.md b/shopfront/README.md index 18959b5..18c5925 100644 --- a/shopfront/README.md +++ b/shopfront/README.md @@ -19,3 +19,11 @@ sudo apt install redis-server Если вы работаете на другом дистрибутиве linux, воспользуйтесь своим пакетным менеджером. Тесты сами запускают `redis` в начале, и останавливают его в конце. + +## Запуск redis в docker + +Комментарии по запуску бд в docker смотрите в задаче [dao](../dao/). + +``` +(cd shopfront && docker-compose up -d && sleep 1 && env REDIS="localhost:6379" go test -v ./... -count=1 || true && docker-compose down) +```