Skip to content

Commit

Permalink
feat: portainer agent
Browse files Browse the repository at this point in the history
  • Loading branch information
shalotts committed Mar 1, 2024
1 parent b9c87e7 commit 6b1a289
Show file tree
Hide file tree
Showing 9 changed files with 129 additions and 13 deletions.
7 changes: 6 additions & 1 deletion .vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,10 @@ export default defineConfig({
{ icon: 'github', link: 'https://github.com/vuejs/vitepress' }
]
},
appearance: 'force-dark'
appearance: 'force-dark',
vite: {
server: {
port: 3000
}
}
})
21 changes: 21 additions & 0 deletions assets/docker/portainer/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
version: "3.4"
services:
agent:
image: portainer/agent
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes

portainer:
image: portainer/portainer-ce:latest
container_name: portainer
command: -H tcp://agent:9001 --tlsskipverify
environment:
- TZ=Europe/Moscow
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /opt/portainer/portainer_data:/data
ports:
- "8000:8000"
- "9443:9443"
restart: always
4 changes: 2 additions & 2 deletions assets/docker/s1/.env.intra
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
PG_DB=intra
PG_USER=postgres
PG_PASS=postgres
PG_USER=docker
PG_PASS=docker
AUTHENTIK_SECRET_KEY=EL4ySLBjVg6TjPEj6TB2VnF1Q4zKsZthu9MSKb5sTWuUjuTHk1
AUTHENTIK_ERROR_REPORTING__ENABLED=true
COMPOSE_PORT_HTTP=7000
Expand Down
8 changes: 5 additions & 3 deletions assets/docker/s1/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ services:
- stack.env
volumes:
- postgres:/var/lib/postgresql/data
- ./infra/postgres:/docker-entrypoint-initdb.d
- entry_db:/docker-entrypoint-initdb.d

redis:
image: redis:alpine
Expand Down Expand Up @@ -51,8 +51,8 @@ services:
- ./media:/media
- ./custom-templates:/templates
ports:
- "${COMPOSE_PORT_HTTP:-7000}:7000"
- "${COMPOSE_PORT_HTTPS:-7443}:7443"
- "${COMPOSE_PORT_HTTP:-9000}:9000"
- "${COMPOSE_PORT_HTTPS:-9443}:9443"
depends_on:
- postgresql
- redis
Expand Down Expand Up @@ -86,6 +86,8 @@ services:
- redis

volumes:
entry_db:
driver: local
postgres:
driver: local
database:
Expand Down
6 changes: 5 additions & 1 deletion assets/docker/s1/entrypoint/init.sql
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
CREATE DATABASE intra;
CREATE ROLE docker LOGIN PASSWORD 'docker';
ALTER USER docker CREATEDB;
CREATE DATABASE intra;
GRANT ALL ON ALL TABLES IN SCHEMA public TO docker;
GRANT ALL PRIVILEGES ON DATABASE intra TO docker;
20 changes: 20 additions & 0 deletions docs/01_introduction/book.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
parent: Introduction
title: Терминология
---

`Виндоус - маздай, линукс форева`

Практика:
- `bad` => плохая
- `good` => хорошая
- `best` => лучшая


На этом всё :) Нет серьезно гугл в помощь! Большинство терминов которые написаны
к примеру [здесь](https://sky.pro/media/it-sleng/), выдуманы отнюдь не разработчиками,
их придумывают менеджеры. Особенно после курсов английского или разговоров с зарубежными
фирмами. У меня большое сомнение, что homepage => хомяк, пошло от английского hamster.

Старайтесь использовать термины на родной речи или на чистом английском. Хомяков уже хватает.

6 changes: 6 additions & 0 deletions docs/02_devops/docker-cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ title: Docker CLI Helpers

# Полезные команды для CLI

::: warning
Текст не отформатирован
:::

`Я вижу подозрительную надпись в начале каждой страницы`

В некоторых ситуациях все же cli команды удобнее графики, здесь список распространенных

## Первый запуск
Expand Down
32 changes: 28 additions & 4 deletions docs/02_devops/docker-compose.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,30 @@ title: Docker Compose API

# Docker Compose API

::: warning
Текст не отформатирован
:::

## Проверка здоровья

::: info
Стандарт [Health Check Response Format for HTTP APIs](https://inadarei.github.io/rfc-healthcheck/)
:::

Если взглянуть на [заготовку файла](/assets/docker/s1/docker-compose.yml)
можно заметить весьма нестандартные вещи, крайне необходимые для наших приложений в проде,
например параметр [healthcheck](https://dotsandbrackets.com/docker-health-check-ru/).

При написание серверной части разработчики по идеи должны прописывать маршруты для проверки состояние. Самый простой
это например отправить запрос курлом в стиле /healthcheck/ping и получить ответ `Pong`. Мячик отскочил, значит все ок.
У серверной части разработчики по идеи должны прописывать маршруты для проверки состояния. Самый простой
это отправить запрос курлом в стиле /healthcheck и получить ответ `OK`.
Данный подход лучше, чем пинговать ресурс или отправить `curl` на главную страницу (там нас ждёт
лишний мусор в виде html, к тому же разработчики могут повесить проверки на внутренние сервисы и
утилиты).

Однако это не гарантирует что все маршруты работают 100% исправно. Операции происходят ни только на сервере, но и у клиента
в браузере. Проверять через определенные интервалы времени занятие весьма дорогое (даёт нагрузку на сервер), поэтому большая
часть тестов проводится каждый раз при сборке приложения (слияние веток с основной).
часть тестов проводится каждый раз при сборке приложения (`good`: слияние веток с основной или с
`best`: тестовой).

Под исключение попадает запросы к чужому API, их нужно прописывать к healthcheck (желательно на стороне разрабов).
Такое API может оказаться недоступным
Expand Down Expand Up @@ -48,4 +63,13 @@ services:
## Entrypoints

Некоторые контейнеры позволяют пробрасывать файлы для инициализации.
В случае если нету entrypoint используйте `command: "Ваша баш команда"`
В случае если нету entrypoint используйте `command: "Ваша баш команда"`, но в этом случае
команда будет срабатывать всегда при перезапуске контейнера, используйте [баш проверки](https://sentry.io/answers/determine-whether-a-file-exists-or-not-in-bash/)

```yaml
volumes:
- entry_db:/docker-entrypoint-initdb.d

```

У `postgress` можно заметить volume для
38 changes: 36 additions & 2 deletions docs/02_devops/portainer.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,42 @@ sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -
дальнейшие действия с докер выполняем внутри portainer, т.к. создает собственные конфиги
несовместимые с консольной версией.

::: details Docker-Compose для portainer
Скачать `wget https://docs.shalotts.site/assets/docker/portainer/docker-compose.yml`

<img height="600" src="https://content.gitbook.com/content/tLcRoAdw9BYwwpba4ZAD/blobs/6tUkFjXix8CjS7IfxrS8/2.18-environments-add.gif"
title="env" width="600"/>
Обратите внимание мы используем agent для получения возможности управлять файлами в volume
После настройки `portainer` вы должны добавить в окружение (enviroments->add enviroment->
Environment address: agent:9001)
Далее вы работаете внутри окружение `agent`, чтобы видет кнопку browse. [Читать доку](https://docs.portainer.io/admin/environments/add/docker/agent)
<img height="600" src="https://content.gitbook.com/content/tLcRoAdw9BYwwpba4ZAD/blobs/IwkpiopH86XACsJnv88x/2.15-docker_volumes_volumes.png" width="600"/>
```yaml
version: "3.4"
services:
agent:
image: portainer/agent
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes

portainer:
image: portainer/portainer-ce:latest
container_name: portainer
command: -H tcp://agent:9001 --tlsskipverify
environment:
- TZ=Europe/Moscow
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /opt/portainer/portainer_data:/data
ports:
- "8000:8000"
- "9443:9443"
restart: always
```
:::

*P.S. Не путайте docker-compose swarm (native docker-compose) с docker-compose plugin. Swarm
*P.S. Не путайте docker-compose swarm с docker-compose plugin. Swarm
технология
крайне нестабильна и устарела, из-за разных версий yaml конфигов, превращает адаптацию конфигов в
танцы с бубном. Стэки на сварм часто падают и не работает с внешним хранилищем NFS*
Expand Down Expand Up @@ -62,5 +95,6 @@ services:

::: warning
Обратите внимание! Для большинства сборок стоит использовать alpine linux (см. содержимое
dockerfile), т.к. он заметно легче debian, но есть исключения, к примеру с [питоном](https://habr.com/ru/articles/486202/)
dockerfile или на тэг с версией контейнера), т.к. он заметно легче debian, но есть исключения, к
примеру с [питоном](https://habr.com/ru/articles/486202/)
:::

0 comments on commit 6b1a289

Please sign in to comment.