Запуск контейнера
Насамперед підготуємо каталоги:
# 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