Launching a container
First of all, let's prepare the catalogs:
# mkdir /var/melbis # mkdir /var/melbis/db # mkdir /var/melbis/www # mkdir /var/melbis/certs # mkdir /var/melbis/certbot
Let's create SSL certificate keys so that the site is accessible via the HTTPS protocol:
# openssl req -x509 -newkey rsa:4096 -keyout /var/melbis/certs/privkey.pem -out /var/melbis/certs/fullchain.pem -days 3650 -nodes
Let's go to the Melbis Shop server directory:
# cd /var/melbis
Let's create a container builder configuration file, like this:
# 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
Next, let's configure the Ngnix proxy server:
# 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; } } }
The Docker image contains only the Melbis Shop core, this is the core folder. Therefore, to start, we need to download the scripts of the minimal demo store from the GitHub website:
wget https://github.com/melbis/melbis-shop/archive/refs/heads/master.zip
Unpack and copy the files to the root directory of the site:
unzip master.zip
rsync -a melbis-shop-master/ /var/melbis/www/
Delete unnecessary files:
rm -r melbis-shop-master
rm master.zip
Launch containers:
# docker-compose up -d
At this stage, the store is already available and can be opened in the browser. This can be done by specifying in the address bar either the domain name of the site or the external IP address of the server. When opening the site, an error message will appear. For now, this is normal, since only the Melbis Shop server scripts were installed and then it is necessary to install the database .