Return of dockertest
This commit is contained in:
parent
4629f5dfa9
commit
49e89a43fd
4 changed files with 140 additions and 0 deletions
100
dockertest/README.md
Normal file
100
dockertest/README.md
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
## dockertest
|
||||||
|
|
||||||
|
### Что нужно сделать?
|
||||||
|
|
||||||
|
Установить docker и добиться успешного запуска команды
|
||||||
|
```
|
||||||
|
docker compose up
|
||||||
|
```
|
||||||
|
|
||||||
|
### С чего начать?
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary><b> Дополнительные шаги для Windows 10</b></summary>
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
1. Установить WSL2 по [инструкции от Microsoft](https://docs.microsoft.com/en-us/windows/wsl/install-win10). <br/>
|
||||||
|
**Важно:** нужна именно вторая версия **WSL2**, проверьте, что она совместима с вашей системой. <br/>
|
||||||
|
Если шаг 5 не работает, включите опцию `Windows Hypervisor Platform` (Settings -> Apps -> Apps & features -> Optional features -> More Windows Features -> включить чекбокс Windows Hypervisor Platform).
|
||||||
|
|
||||||
|
2. Установите Docker Desktop по [инструкции](https://docs.docker.com/docker-for-windows/wsl/#download). Вероятно, выполнять шаги по активации поддержки WSL не потребуется, все подключится автоматически.
|
||||||
|
|
||||||
|
3. Запустите Docker Desktop (никакие контейнеры запускать не надо, только если хотите убедиться в том, что все работает). <br/>
|
||||||
|
Запустите установленную в п.1 Linux OS через WSL2. <br/>
|
||||||
|
Далее используйте этот Linux для выполнения дальнейших шагов этого README.
|
||||||
|
|
||||||
|
_Замечание_: запущенный, но уже не использующийся Docker Desktop с бекэндом WSL занимает впустую много оперативной памяти, см [issue](https://github.com/microsoft/WSL/issues/4166) - можно ограничить максимальный доступный ему объем (см. [workaround](https://github.com/microsoft/WSL/issues/4166#issuecomment-526725261)), либо отключить автозапуск Docker Desktop и останавливать сервис, когда вы его не используете.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
#### Установить 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
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Запустить контейнеры не через тесты
|
||||||
|
|
||||||
|
В директории `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>
|
||||||
|
```
|
30
dockertest/docker-compose.yaml
Normal file
30
dockertest/docker-compose.yaml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
pg:
|
||||||
|
build: ./postgres/
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: test
|
||||||
|
POSTGRES_USER: gopher
|
||||||
|
POSTGRES_PASSWORD: pass
|
||||||
|
ports:
|
||||||
|
- 5432:5432
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: "redis:alpine"
|
||||||
|
hostname: redis
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
|
||||||
|
prometheus:
|
||||||
|
image: prom/prometheus:latest
|
||||||
|
ports:
|
||||||
|
- 9090:9090
|
||||||
|
|
||||||
|
grafana:
|
||||||
|
image: grafana/grafana:latest
|
||||||
|
environment:
|
||||||
|
- GF_SECURITY_ADMIN_USER=gopher
|
||||||
|
- GF_SECURITY_ADMIN_PASSWORD=pass
|
||||||
|
- GF_USERS_ALLOW_SIGN_UP=false
|
||||||
|
ports:
|
||||||
|
- 3000:3000
|
3
dockertest/postgres/Dockerfile
Normal file
3
dockertest/postgres/Dockerfile
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
FROM postgres:latest
|
||||||
|
|
||||||
|
COPY init.sql /docker-entrypoint-initdb.d/10-init.sql
|
7
dockertest/postgres/init.sql
Normal file
7
dockertest/postgres/init.sql
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
create table Role(
|
||||||
|
RoleID SERIAL PRIMARY KEY,
|
||||||
|
RoleName varchar(50)
|
||||||
|
);
|
||||||
|
|
||||||
|
insert into Role(RoleName)
|
||||||
|
values ('Admin'),('User');
|
Loading…
Reference in a new issue