Разворачиваем LEMP-стэк на контейнерах Docker

Containers / LEMP Stack 26-07-2021, 16:45 sobir 3 222 0


Compose — это инструмент, который позволяет одновременно развертывать несколько контейнеров и управлять ими.

Compose работает во всех средах: production, staging, development, testing, а также в рабочих процессах CI.

Файл docker-compose.yml содержит инструкции для развертывания контейнеров Docker.

В этом файле указываем, например:
  • Откуда взять Dockerfile для создания кастомного образа
  • Какие порты привязать к хост-машине
  • Где хранить данные
  • и т.д...

Compose считывает этот файл и выполняет команды.

Установим Compose командой:
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Разрешаем права на выполнение:
chmod +x /usr/local/bin/docker-compose

Создадим символическую ссылку на скрипт:
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Проверяем:
docker-compose --version

Создадим директории для проекта:
mkdir -p /data/{app,db,src}

где, app это директория для хранения файлов сайта, в db содержатся файлы баз данных MySQL, а в src хранятся исходники для сборки кастомных контейнеров Docker.

Содержимое файла docker-compose.yml:
vi /data/docker-compose.yml

version: '3.7'
services:

  # NGINX Service
  web:
    image: nginx:latest
    container_name: web
    ports:
      - "80:80"
    volumes:
      - ./app:/var/www/html  

  # PHP Service
  app:
    build:
      context: ./src
      dockerfile: Dockerfile-PHP-FPM
    container_name: app
    working_dir: /var/www/html
    volumes:
      - ./app:/var/www/html

  # MySQL Service
  db:
    image: mariadb:10.5.10
    container_name: db
    environment:
      MARIADB_ROOT_PASSWORD: 1234567890
    volumes:
      - ./db:/var/lib/mysql

volumes:
  app:
    driver: local
  db:
    driver: local  

Содержимое файла Dockerfile-PHP-FPM:
vi /data/src/Dockerfile-PHP-FPM

FROM php:7.4-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd \
    && docker-php-ext-install mysqli

Запускаем контейнеры:
docker-compose up -d --build
Похожие новости
How to install Docker and Compose on AlmaLinux

Quick setup docker and docker-compose with a simple bash script....

Подробнее
How to deploy Zimbra Mail server with Docker and Compose

Quick setup Zimbra Mail server with Docker and Compose....

Подробнее
Как назначить конкретную подсеть контейнерам Docker

Создание выделенной сети контейнерам Docker....

Подробнее
Поднимаем ocserv с аутентификацией LDAP

Поднимаем VPN сервер OpenConnect (ocserv) в контейнере Docker с аутентификацией пользователей из Microsoft...

Подробнее
Настройка частного реестра Docker Private Registry

Создаем свой репозиторий образов контейнеров Docker....

Подробнее
Как назначить статические IP-адреса контейнерам Docker

Назначаем статические IP-адреса контейнерам Docker....

Подробнее
Комментарии (0)
Новые комментарии
sobir8 ноября 2024 12:42

Цитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные

img
К комментарию
FidoNet7 ноября 2024 03:26

Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные статьи что находил

img
К комментарию
sobir27 октября 2024 19:02

Цитата: FidoNet Цитата: sobir Цитата: FidoNet Можт быть дело в

img
К комментарию
FidoNet25 октября 2024 22:04

Цитата: sobir Цитата: FidoNet Можт быть дело в dnsmasq.service? Ошибка Failed

img
К комментарию
sobir25 октября 2024 16:48

Цитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные

img
К комментарию
FidoNet20 октября 2024 12:12

Можт быть дело в dnsmasq.service? Ошибка Failed to set DNS configuration: Unit

img
К комментарию
Все комментарии
Какой дистрибутив Linux вы часто используете?
Календарь
«    Ноябрь 2024    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
252627282930 
Подпишись на канал