Разворачиваем 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
Quick setup docker and docker-compose with a simple bash script....
ПодробнееQuick setup Zimbra Mail server with Docker and Compose....
ПодробнееСоздание выделенной сети контейнерам Docker....
ПодробнееПоднимаем VPN сервер OpenConnect (ocserv) в контейнере Docker с аутентификацией пользователей из Microsoft...
ПодробнееСоздаем свой репозиторий образов контейнеров Docker....
ПодробнееНазначаем статические IP-адреса контейнерам Docker....
ПодробнееНовые комментарии
Цитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные
К комментариюЦитата: sobir Цитата: FidoNet Спасибо за статью. Остальные статьи что находил
К комментариюЦитата: FidoNet Цитата: sobir Цитата: FidoNet Можт быть дело в
К комментариюЦитата: sobir Цитата: FidoNet Можт быть дело в dnsmasq.service? Ошибка Failed
К комментариюЦитата: FidoNet Цитата: sobir Цитата: FidoNet Спасибо за статью. Остальные
К комментариюМожт быть дело в dnsmasq.service? Ошибка Failed to set DNS configuration: Unit
К комментариюКакой дистрибутив Linux вы часто используете?
Календарь
« Ноябрь 2024 » | ||||||
---|---|---|---|---|---|---|
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |