[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-docker-kakie-osnovnye-direktivy-ispolzuyutsya-v-docker-compose-yml":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},712,"kakie-osnovnye-direktivy-ispolzuyutsya-v-docker-compose-yml",17,"docker","Docker","🐳","Какие основные директивы используются в docker-compose.yml?","Директивы docker-compose.yml — это ключевые слова YAML-конфигурации, определяющие сервисы, их образы, сети, тома и поведение при запуске.\n\n### services\n\nОпределяет контейнеры (сервисы), которые будут запущены:\n\n```yaml\nservices:\n  app:\n    image: my-spring-app:1.0\n  db:\n    image: postgres:16-alpine\n```\n\n### image \u002F build\n\nУказывает, какой образ использовать или как его собрать:\n\n```yaml\nservices:\n  app:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    # или\n    image: my-spring-app:1.0\n```\n\n### ports\n\nМаппинг портов `хост:контейнер`:\n\n```yaml\nports:\n  - \"8080:8080\"\n  - \"5005:5005\"  # debug порт\n```\n\n### environment \u002F env_file\n\nПеременные окружения:\n\n```yaml\nenvironment:\n  SPRING_PROFILES_ACTIVE: prod\n  JAVA_OPTS: \"-Xmx512m -Xms256m\"\n# или\nenvironment:\n  - SPRING_PROFILES_ACTIVE=prod\n\n# загрузка из файла\nenv_file:\n  - .env\n```\n\n### volumes\n\nМонтирование томов:\n\n```yaml\nvolumes:\n  - postgres-data:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata   # именованный том\n  - .\u002Fconfig:\u002Fapp\u002Fconfig                      # bind mount\n```\n\n### networks\n\nОпределение сетей:\n\n```yaml\nservices:\n  app:\n    networks:\n      - backend\n  db:\n    networks:\n      - backend\nnetworks:\n  backend:\n    driver: bridge\n```\n\n### depends_on\n\nПорядок запуска сервисов:\n\n```yaml\ndepends_on:\n  - db\n  - redis\n# С проверкой условия (Compose V2):\ndepends_on:\n  db:\n    condition: service_healthy\n```\n\n`depends_on` гарантирует только порядок запуска контейнеров, но не то, что сервис внутри контейнера готов принимать соединения. Для этого нужно использовать `condition: service_healthy` с health check или механизм retry на уровне приложения.\n\n### restart\n\nПолитика перезапуска:\n\n```yaml\nrestart: unless-stopped\n# Другие варианты: no, always, on-failure\n```\n\n### healthcheck\n\nПроверка состояния сервиса:\n\n```yaml\nhealthcheck:\n  test: [\"CMD\", \"curl\", \"-f\", \"http:\u002F\u002Flocalhost:8080\u002Factuator\u002Fhealth\"]\n  interval: 30s\n  timeout: 10s\n  retries: 3\n  start_period: 40s\n```\n\n> **На собеседовании:** назовите ключевые директивы: services, image\u002Fbuild, ports, environment, volumes, depends_on, healthcheck. Частая ловушка — вопрос про depends_on: он не ждёт готовности сервиса, а только запускает контейнеры в нужном порядке. Для ожидания готовности нужен `condition: service_healthy`.","","middle",[15,16,7,17],"configuration","docker-compose","yaml",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":36,"featuredSnippetReady":37},"Директивы docker-compose.yml: services, ports, volumes — Gymterview","Ключевые директивы docker-compose.yml: services, image\u002Fbuild, ports, environment, volumes, networks, depends_on, restart, healthcheck. Примеры конфигурации.","Директивы docker-compose.yml — Gymterview","Обзор ключевых директив docker-compose.yml: services, ports, volumes, depends_on с condition: service_healthy, healthcheck.",[26,27,28,29,30,31,32,33,34,35],"docker-compose.yml директивы","services","ports","volumes","depends_on","healthcheck","environment","networks","restart","собеседование","Ключевые директивы: services (определение контейнеров), image\u002Fbuild (образ или сборка), ports (маппинг портов хост:контейнер), environment\u002Fenv_file (переменные окружения), volumes (монтирование томов и bind mounts), networks (определение сетей), depends_on (порядок запуска, с condition: service_healthy для ожидания готовности), restart (политика перезапуска), healthcheck (проверка состояния сервиса).",true]