Запуск контейнера
Первым делом подготовим каталоги:
# mkdir /var/melbis # mkdir /var/melbis/db # mkdir /var/melbis/www # mkdir /var/melbis/certs # mkdir /var/melbis/certbot
Создадим ключи SSL-сертификата, для того чтобы сайт был доступен по HTTPS-протоколу:
# openssl req -x509 -newkey rsa:4096 -keyout /var/melbis/certs/privkey.pem -out /var/melbis/certs/fullchain.pem -days 3650 -nodes
Перейдем в каталог сервера Melbis Shop:
# cd /var/melbis
Создадим конфигурационный файл сборщика контейнеров, например такой:
# nano docker-compose.yml
version: '3'
services:
db:
image: mysql:8.4
environment:
MYSQL_ROOT_PASSWORD: mysql_passkey
MYSQL_DATABASE: melbis
MYSQL_USER: melbis
MYSQL_PASSWORD: melbis_pass
MYSQL_CHARACTER_SET_SERVER: utf8mb4
MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
volumes:
- /var/melbis/db:/var/lib/mysql
restart: always
web:
depends_on:
- db
image: kasdim/melbis-shop:latest
volumes:
- /var/melbis/www/:/var/www/html/
- /var/www/html/core
restart: always
nginx:
image: nginx:latest
volumes:
- /var/melbis/nginx.conf:/etc/nginx/nginx.conf
- /var/melbis/certs:/etc/nginx/certs
- /var/melbis/certbot:/etc/nginx/certbot
ports:
- 80:80
- 443:443
depends_on:
- web
restart: always
Далее, настроим прокси-сервер Ngnix:
# nano nginx.conf
events {}
http {
server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
client_max_body_size 64M;
ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
location /.well-known/ {
root /etc/nginx/certbot;
}
location / {
proxy_pass http://web:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}Docker-образ содержит только ядро Melbis Shop, это папка core. Поэтому, для старта нам потребуется скачать скрипты минимального демонстрационного магазина с сайта GitHub:
wget https://github.com/melbis/melbis-shop/archive/refs/heads/master.zip
Распаковываем и копируем файлы в корневой каталог сайта:
unzip master.zip
rsync -a melbis-shop-master/ /var/melbis/www/
Удаляем лишние файлы:
rm -r melbis-shop-master
rm master.zip
Запускаем контейнеры:
# docker-compose up -d
На этом этапе магазин уже доступен и его можно открыть в браузере. Это можно сделать указав в адресной строке или доменное имя сайта или же внешний IP-адрес сервера. При открытии сайта появится сообщение об ошибке. Пока, это нормально, поскольку были установлены только скрипты сервера Melbis Shop и дальше необходимо выполнить инсталляцию базы данных.

Melbis Shop6