我已经在服务器上创建了PrestaShop商店。有没有可能将docker用于我的商店并将其迁移到使用docker的另一台服务器中?我知道我需要docker-compose,但老实说,我不知道如何处理当前服务器上的文件。
答案 0 :(得分:3)
您可以使用此docker-compose.yml
:
version: "3"
services:
prestashop:
image: prestashop/prestashop
networks:
mycustomnetwork:
ports:
- 82: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=mycustompassword
- DB_NAME=prestashop
- PS_INSTALL_AUTO=0
mariadb:
image: mariadb
networks:
mycustomnetwork:
volumes:
- presta_db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=mycustompassword
- MYSQL_DATABASE=prestashop
phpmyadmin:
image: phpmyadmin/phpmyadmin
networks:
mycustomnetwork:
links:
- mariadb:mariadb
ports:
- 1235:80
depends_on:
- mariadb
environment:
- PMA_HOST=mariadb
- PMA_USER=root
- PMA_PASSWORD=mycustompassword
volumes:
presta_db:
networks:
mycustomnetwork:
external: true
替换mycustomnetwork
和mycustompassword
然后运行docker-compose up
网址:localhost:82
PHP MyAdmin网址:localhost:1235
答案 1 :(得分:1)
您可以按照本教程在Docker环境中设置Prestashop。
https://hub.docker.com/r/prestashop/prestashop/
您将需要将当前文件添加到Prestashop容器中,并且很可能将数据库导入MySQL容器中。 Docker-compose将用于一起启动这些容器。完成此操作后,您将可以将整个事情部署到任何地方。
答案 2 :(得分:0)
好,所以我深入探讨了问题和解决方案,如下所示。我要做的是从prestashop中提取原始图像,然后在其中复制我的文件。
下一步是使用mariadb
图片。我从先前的商店phpmyadmin中导出了backup.sql
文件
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
最大的问题是docker-machine
中的IP。请记住,如果使用的是docker工具箱,则IP为192.168.99.100,但在Windows的Docker中,您的IP取决于localhost(或仅键入localhost)。
答案 3 :(得分:0)
您还应该在撰写文件中包含网桥网络,某些示例可能在此处https://runnable.com/docker/docker-compose-networking起作用。
通过这种方式,可以将db配置为仅由本地docker网络上的prestashop访问,而不会暴露在外部。如果您的IP发生更改,Presta db也可以指向运行映像的名称。您只需运行该应用程序上的端口80。