shad-go/dockertest/README.md
2021-03-23 20:52:53 +03:00

4.2 KiB
Raw Blame History

dockertest

Это не настоящая задача, а заготовка на будущее.

Что нужно сделать?

Установить docker и добиться успешного локального запуска тестов

go test -v ./dockertest/... -count=1

Только после того, как тесты пройдут локально можете запушить решение в систему.

С чего начать?

Дополнительные шаги для Windows 10
  1. Установить WSL2 по инструкции от Microsoft.
    Важно: нужна именно вторая версия WSL2, проверьте, что она совместима с вашей системой.
    Если шаг 5 не работает, включите опцию Windows Hypervisor Platform (Settings -> Apps -> Apps & features -> Optional features -> More Windows Features -> включить чекбокс Windows Hypervisor Platform).

  2. Установите Docker Desktop по инструкции. Вероятно, выполнять шаги по активации поддержки WSL не потребуется, все подключится автоматически.

  3. Запустите Docker Desktop (никакие контейнеры запускать не надо, только если хотите убедиться в том, что все работает).
    Запустите установленную в п.1 Linux OS через WSL2.
    Далее используйте этот Linux для выполнения дальнейших шагов этого README.

Замечание: запущенный, но уже не использующийся Docker Desktop с бекэндом WSL занимает впустую много оперативной памяти, см issue - можно ограничить максимальный доступный ему объем (см. workaround), либо отключить автозапуск Docker Desktop и останавливать сервис, когда вы его не используете.

Установить docker

https://docs.docker.com/engine/install/

После стандартной процедуры установки на Linux будет создана группа docker. Чтобы использовать docker cli без sudo, нужно добавить себя в эту группу:

sudo groupadd docker
sudo usermod -aG docker $USER

После этого разлогиньтесь из os и залогиньтесь заново (или перезапустите систему).

Для проверки можно запустить

docker run hello-world

Установить docker-compose

https://docs.docker.com/compose/install/

Запустить контейнеры не через тесты

В директории dockertest выполнить

docker-compose up

Что делать, если сразу не заработало?

Поискать решение проблемы в интернете.

Если решение найдено, и проблема выглядит общей, сделать merge request с улучшением README.

Если интернет не помог, спросить в чате.

docker-compose cheat sheet

Запустить все контейнеры в daemon режиме пересобрав образы:

docker-compose up -d --build

Остановить все контейнеры:

docker-compose down

Docker cheat sheet

Получить список образов

docker images

Список всех контейнеров:

docker ps -a

Остановить контейнер:

docker stop <NAME>

Удалить контейнер:

docker rm <NAME>

Удалить образ:

docker rmi <NAME>