diff --git a/docs/docker/docker-compose-healthcheck.md b/docs/docker/compose/healthcheck.md similarity index 100% rename from docs/docker/docker-compose-healthcheck.md rename to docs/docker/compose/healthcheck.md diff --git a/docs/docker/compose/profile.md b/docs/docker/compose/profile.md new file mode 100644 index 0000000..1b5c09b --- /dev/null +++ b/docs/docker/compose/profile.md @@ -0,0 +1,49 @@ +# Docker Compose Profile - профили + +Те, кто юзает docker-compose, обычно делятся на 2 типа: +- пихаем все в 1 файл на каждый хост +- пихаем в разные файлы с какой-то логикой + +Что, если я напишу, что можно совместить эти 2 типа людей. 1 файл, но с разбивкой по профилям с какой-то логикой. Звучи правда классно? + +Возьмем классический монолитный файл docker-compose: + +```yaml title="docker-compose.yaml" +version: "3.9" +services: + nginx1: + image: nginx + container_name: nginx1 + profiles: + - prod + - test + nginx2: + image: nginx + container_name: nginx2 + profiles: + - prod + nginx3: + image: nginx + container_name: nginx3 + profiles: + - test +``` + +Используя profile, можно поместить 1 службу в несколько профилей, что дает больше гибкости, чем несколько файлов. + +```bash +user@test tmp % docker-compose --profile test up -d +[+] Running 2/2 + ⠿ Container nginx1 Started 0.1s + ⠿ Container nginx3 Started + ``` + + Пример выше показывает, что были запущены только сервисы, с профилем `test`. Больше информации можно найти в [документации Docker](https://blog.ktz.me/monolithic-docker-compose-files-filtered-by-labels/#:~:text=%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D0%B8%20Docker%20.) . + + !!! note + Eсли включаем профиль, то простой вариант docker-compose up -d не выполнится: + + ```bash + user@test tmp % docker-compose up -d + no service selected + ``` \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index f3dcba3..00f6077 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -16,6 +16,9 @@ nav: - TCP Route: docker/traefik/tcp-routes.md - Error Pages: docker/traefik/errorpages.md - Traefik Forward Auth: docker/traefik-forward-auth.md + - Docker Compose: + - Profile: docker/compose/profile.md + - Healthcheck: docker/compose/healthcheck.md - Сервисы: - Samba: docker/samba.md - Redis: docker/redis.md