项目作者: goodwong

项目描述 :
为 Magento 1.9.x.x 准备的docker环境,可能1.7.x,1.8.x也能用
高级语言: Dockerfile
项目地址: git://github.com/goodwong/docker-magento.git
创建时间: 2018-08-25T04:22:24Z
项目社区:https://github.com/goodwong/docker-magento

开源协议:

下载


docker for magento 1.9

为 Magento 1.9.x.x 准备的docker环境,可能1.7.x1.8.x也能用

安装 docker & docker-compose

参见docker 官方文档
https://docs.docker.com/install/linux/docker-ce/ubuntu/
https://docs.docker.com/compose/install/#master-builds

创建项目文件夹

  1. # 项目文件夹
  2. mkdir magento-domain-1/ && cd magento-domain-1/
  3. # magento 1.x 代码文件夹
  4. mkdir public/

文件夹结构

  1. magento-domain-1/
  2. ├── .docker-compose/ # <---- docker-compose 运行及数据文件夹
  3. ├── adminer
  4. ├── db
  5. ├── docker-compose.yml
  6. ├── .env
  7. ├── .env.example
  8. ├── .git
  9. ├── .gitignore
  10. ├── nginx
  11. ├── php-fpm
  12. └── README.md
  13. └── public/ # <------------- magento 1.x 代码文件夹
  14. ├── api.php
  15. ├── app
  16. ├── cron.php
  17. ├── cron.sh
  18. ├── dev
  19. ├── downloader
  20. ├── error_log
  21. ├── errors
  22. ├── favicon.ico
  23. ├── get.php
  24. ├── .htaccess
  25. ├── .htaccess.sample
  26. ├── includes
  27. ├── index.php
  28. ├── index.php.sample
  29. ├── install.php
  30. ├── js
  31. ├── lib
  32. ├── LICENSE_AFL.txt
  33. ├── LICENSE.html
  34. ├── LICENSE.txt
  35. ├── mage
  36. ├── media
  37. ├── php.ini.sample
  38. ├── RELEASE_NOTES.txt
  39. ├── shell
  40. ├── skin
  41. └── var

安装 docker-magento

克隆

  1. cd magento-domain-1/
  2. git clone https://github.com/goodwong/docker-magento .docker-compose

配置

  1. cd .docker-compose/
  2. cp .env.example .env

默认配置即可运行,如果有多个magento站点运行,分别修改以下变量为不同的值:

  • COMPOSE_PROJECT_NAME=
  • NGINX_HOST_HTTP_PORT=
  • DB_ADMINER_PORT=

生产环境下,建议修改数据库密码

  • DB_ROOT_PASSWORD=
  • DB_PASSWORD=
  • DB_USER=
  • DB_NAME=

运行

  1. cd .docker-compose/
  2. docker-compose up -d web
  3. # 如果需要查看日志,增加:
  4. docker-compose logs -f

安装magento

全新magento代码

  1. cd magento-domain-1/
  2. cd public/
  3. # tar jxf .docker-compose/magento-1.9.3.9-2018-06-27-02-47-24.tar -C public/
  4. # 文件过大,自行下载吧。。。

然后在浏览器里访问 http://你的服务器ip或域名:nginx端口号
安装过程中,配置数据库:

数据库地址:db
数据库用户名:root 或.env文件<DB_USER>
数据库密码:见.env文件 <DB_ROOT_PASSWORD><DB_PASSWORD>
数据库名称:见.env文件 <DB_NAME>,可不填

使用现有的magento代码

  1. 解压代码至 public/文件夹
  2. 修改app/etc/local.xml数据库信息:

    数据库地址:db
    数据库用户名:见.env文件<DB_USER>
    数据库密码:见.env文件<DB_PASSWORD>
    数据库名称:见.env文件 <DB_NAME>

设置文件权限

  1. cd .docker-compose/
  2. docker-compose exec php-fpm bash
  3. chown -R www-data:www-data public/var/ public/media/

导入/管理数据库

有两种方式管理数据库:

  • 方法一,通过adminer的web界面操作
    1. cd .docker-compose/
    2. docker-compose up adminer
    打开浏览器 http://IP地址:
    Server地址填写db
  • 方法二,进入mysql容器,使用命令行界面
    首先将数据文件解压并放在项目文件夹
    1. cd .docker-compose/
    2. docker-compose exec db bash
    3. cd /var/www/html/
    4. mysql -p magento < database_backup_file.sql
    5. # ^ ^
    6. # 数据库名 数据库备份文件
    7. # 见.env文件

多站点多项目

注意分别修改.env文件里端口变量为不同的值

建议使用nginx作前端机,配置代理规则

  1. # 宿主机
  2. # /etc/nginx/sites-available/domain-1.conf
  3. server {
  4. listen 80;
  5. listen [::]:80;
  6. server xxx.com www.xxx.com;
  7. location / {
  8. proxy_set_header HOST $host;
  9. proxy_set_header X-Forwarded-Proto $scheme;
  10. proxy_set_header X-Real-IP $remote_addr;
  11. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  12. proxy_pass http://127.0.0.1:8888/; # <--- 末尾必须有/符号
  13. # <--- 端口号见<NGINX_HOST_HTTP_PORT> 变量
  14. }
  15. }