Compose-example

Пример написания docker-compose

Пример взят с docs.microsoft.com

version: "3.7"

services:
  app:
    image: node:12-alpine
    #build: .
    command: sh -c "yarn install && yarn run dev"
    ports:
      - 3000:3000
    working_dir: /app
    volumes:
      - ./:/app
    environment:
      MYSQL_HOST: mysql
      MYSQL_USER: root
      MYSQL_PASSWORD: secret
      MYSQL_DB: todos
    networks:
      app_net:

  mysql:
    image: mysql:5.7
    volumes:
      - todo-mysql-data:/var/lib/mysql
    environment: 
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: todos
    networks:
      app_net:

volumes:
  todo-mysql-data:

networks:
  app_net:
    driver: bridge

Ключевые слова используемые в docker-compose:

Ключи Применение
build Указывает путь откуда брать Dockerfile для создания образа
args Указание аргументов билда которые требуются во время создания образа
command Переписывает CMD указанную в Dockerfile
devices Мапирование физических устройств в рабочий контейнер
depends_on Указание зависимости сервисов друг от друга. Зависимый сервис будет запускаться последний
dns Указанный в ручуню DNS сервер
entrypoint Переписывает ENTRYPOINT директиву из Dockerfile
env_file Добавление переменных с помощью файла переменных окружения
environment Явное указание переменных в контейнер
expose Выставление портов контейнера, они будут доступны только linked сервисам, могут быть указаны только внутренние порты.
image Указание образа, который будет взят для старта контейнера
links Связывание контейнеров разных сервисах
logging Настройки логирования для сервиса.
networks Сеть к которой будет присоденен сервис
ports Маирование портов из контейнера в хост систему
volumes Мапирование папок из хост системы в контенер