Разверните существующий Prestashop на сервере с помощью Docker - PullRequest
0 голосов
/ 09 ноября 2018

Я создал магазин PrestaShop на сервере. Есть ли какой-нибудь возможный способ использовать Docker для моего магазина и перенести его на другой сервер с помощью Docker? Я знаю, что мне понадобится docker-compose, но, если честно, я не знаю, что делать с файлами на текущем сервере.

Ответы [ 3 ]

0 голосов
/ 08 декабря 2018

Хорошо, так что я углубился в проблему, и решение для ответа, как показано ниже. Я вытащил оригинальное изображение из prestashop и скопировал туда мои файлы.

Следующим шагом было использование mariadb изображения. У меня был backup.sql файл, экспортированный из предыдущего магазина phpmyadmin

version: '2'

services: 
  prestashop:
    image: prestashop
    ports:
      - 80:80
    links:
      - mariadb:mariadb
    depends_on:
      - mariadb
    volumes:
      - ./src:/var/www/html
      - ./src/modules:/var/www/html/modules
      - ./src/themes:/var/www/html/themes
      - ./src/override:/var/www/html/override
    environment:
      - PS_DEV_MODE=1
      - DB_SERVER=mariadb
      - DB_USER=root
      - DB_PASSWD=root
      - DB_NAME=prestashop
      - PS_INSTALL_AUTO=0

  mariadb:
    image: mariadb
    volumes:
     - backup.sql:/docker-entrypoint-initdb.d
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=prestashop

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    links:
      - mariadb
    ports: 
      - 81:80 
    environment:
      - PMA_HOST=mariadb
      - PMA_USER=root
      - PMA_PASSWORD=root

Самая большая проблема - IP в docker-machine. Имейте в виду, что если вы используете панель инструментов Docker, у вас есть IP 192.168.99.100, но в Docker для Windows ваш IP зависит от localhost (или просто введите localhost).

0 голосов
/ 05 мая 2019

Вы также должны включить мостовую сеть в ваш файл compose, некоторые примеры могут работать здесь https://runnable.com/docker/docker-compose-networking.

Таким образом, можно настроить доступ к БД только для prestashop в локальной сети докеров, не подвергая его воздействию снаружи. Presta db также можно указать на имя запущенного образа, в случае изменения вашего IP-адреса или чего-то еще. Все, что вы оставили бы запущенным, это порт 80 в приложении.

0 голосов
/ 09 ноября 2018

Вы можете следовать этому руководству, чтобы настроить Prestashop в среде Docker.

https://hub.docker.com/r/prestashop/prestashop/

Вам нужно будет добавить ваши текущие файлы в контейнер Prestashop и, скорее всего, импортировать вашу базу данных в контейнер MySQL. Docker-compose будет использоваться для совместного запуска этих контейнеров. Как только это будет сделано, вы сможете развернуть все это где угодно.

...