yii2_fecshop_docker

使用docker compose 快速的安装fecshop的环境,包括mysql php(含扩展),mongodb,mysql,redis,xunsearch等

Stars
185
Committers
3

Fecshop Fancy ECommerce Shopphp Yii2 Fecshoppcwebapperp

Fecshop Github: https://github.com/fancyecommerce/yii2_fecshop

Fecshop Docker

dockerfecshopdocker compopse fecshop

docker fecshop docker


dockerdocker https://github.com/fecshop/yii2_fecshop_docker_fool nginx dockerfecshop


docker-compose.yml docker

1.docker docker-compose.yml.aliyun docker-compose.yml , fecshop

2.fecshopcomposerfecshop ``,

http://www.fecshop.com/topic/641


./app: fecshopfecshopcomposer,phpcomposerfecshop ./app/fecshop

./db: -

./db/mongodb: mongodb

./db/mongodb/data:

./db/mongodb/example_db: fecshopmongodb

./db/mongodb/etc/mongod.conf: Mongodb

./db/mongodb/logs: Mongodblogs

./db/mysql: mysql

./db/mysql/data: mysql

./db/mysql/example_db: fecshopmysql

./db/mysql/conf.d: mysql

./db/redis: redis

./db/redis/data: redis

./db/redis/etc/redis.conf: redis

./db/redis/etc/redis-password: redis

./db/xunsearch: xunsearch

./db/xunsearch/data: xunsearch

./example_data: fecshop

./services: php nginx

./services/php: php

./services/php/docker/Dockerfile: phpdockerfile

./services/php/etc/php7.1.13.ini: php

./services/web: nginx

./services/web/nginx/conf: nginx

./services/web/nginx/conf/conf.d/default.confnginx server

./services/web/nginx/logs: nginxlog

./docker-compose.yml: docker compose

dockerdocker compose

linux3.1.0 ,centos 7

1docker

sudo curl -sSL https://get.daocloud.io/docker | sh

2 docker composeinstall-compose

sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

docker compose

git clone

mkdir -p /www/web
cd /www/web
git clone https://github.com/fecshop/yii2_fecshop_docker.git
  1. yii2_fecshop_docker docker-compose.yml

1.1mysql

- MYSQL_ROOT_PASSWORD=fecshopxfd3ffaads123456

1.2redis

`./db/redis/etc/redis-password`,redis

mysqlredis

docker

service docker start

docker 15

chmod 755 /usr/local/bin/docker-compose
docker-compose build

docker-compose.yml docker

docker-compose.yml.aliyun docker-compose.yml , fecshop

http://www.fecshop.com/topic/641

docker-compose up  // ctrl+c
docker-compose up -d

compose

docker-compose ps

,php

docker-compose exec php bash
exit

docker compose

docker-compose stop

docker compose

docker fecshop

docker dockerdockerdocker docker mysql phpredismongdob volumes ./docker-compose.yml volumes

docker

``: linux

``docker

1:

yii2_fecshop_docker

docker-compose up -d

2composer fecshop

php

docker-compose exec php  bash

// php

cd /www/web

fecshophttps://github.com/fecshop/yii2_fecshop/releases

1.4.4.0 fecshop

composer create-project fancyecommerce/fecshop-app-advanced fecshop 1.4.4.0

** 1.4.4.0 ** ** 1.4.4.0 **

** 1.4.4.0 ** ** 1.4.4.0 **

githubtokenTokenhttp://www.fecshop.com/topic/412

githubgithubtokengithub token http://www.fecshop.com/topic/412

Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+b3817f538307+2018-06-12+1503
to retrieve a token. It will be stored in "/root/.composer/auth.json" for future use by Composer.
Token (hidden):

composercomposerfxpFatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar http://www.fecshop.com/topic/612

cd fecshop
composer update
./init

log

root@21b9518c220b:/www/web/fecshop# ./init
bash: ./init: Permission denied
root@21b9518c220b:/www/web/fecshop# chmod 755 ./init
root@21b9518c220b:/www/web/fecshop# ./init
Yii Application Initialization Tool v1.0

Which environment do you want the application to be initialized in?

  [0] Development
  [1] Production

  Your choice [0-1, or "q" to quit] 0

  Initialize the application under 'Development' environment? [yes|no] yes

  Start initialization ...

   generate yii
   generate apphtml5/merge_config.php
   generate apphtml5/web/cn/index.php
   generate apphtml5/web/cn/sitemap.xml
   generate apphtml5/web/cn/robots.txt
   generate apphtml5/web/fr/index.php
   generate apphtml5/web/fr/sitemap.xml
   generate apphtml5/web/fr/robots.txt
   generate apphtml5/web/sitemap_es.xml
   generate apphtml5/web/index.php
   generate apphtml5/web/sitemap.xml
   generate apphtml5/web/index-test.php
   generate apphtml5/web/index-merge-config.php
   generate apphtml5/web/robots.txt
   generate apphtml5/config/main-local.php
   generate apphtml5/config/params-local.php
   generate appapi/merge_config.php
   generate appapi/web/index.php
   generate appapi/web/index-test.php
   generate appapi/web/index-merge-config.php
   generate appapi/config/main-local.php
   generate appapi/config/params-local.php
   generate console/config/main-local.php
   generate console/config/params-local.php
   generate appadmin/web/index.php
   generate appadmin/web/index-test.php
   generate appadmin/config/main-local.php
   generate appadmin/config/params-local.php
   generate appfront/merge_config.php
   generate appfront/web/cn/index.php
   generate appfront/web/cn/sitemap.xml
   generate appfront/web/cn/robots.txt
   generate appfront/web/fr/index.php
   generate appfront/web/fr/sitemap.xml
   generate appfront/web/fr/robots.txt
   generate appfront/web/sitemap_es.xml
   generate appfront/web/index.php
   generate appfront/web/sitemap.xml
   generate appfront/web/index-test.php
   generate appfront/web/index-merge-config.php
   generate appfront/web/robots.txt
   generate appfront/config/main-local.php
   generate appfront/config/params-local.php
   generate appserver/merge_config.php
   generate appserver/web/index.php
   generate appserver/web/index-test.php
   generate appserver/web/index-merge-config.php
   generate appserver/config/main-local.php
   generate appserver/config/params-local.php
   generate tests/codeception/config/config-local.php
   generate common/config/main-local.php
   generate common/config/params-local.php
   generate cookie validation key in appadmin/config/main-local.php
   generate cookie validation key in appapi/config/main-local.php
   generate cookie validation key in appfront/config/main-local.php
   generate cookie validation key in apphtml5/config/main-local.php
   generate cookie validation key in appserver/config/main-local.php
      chmod 0777 appadmin/runtime
      chmod 0777 appadmin/web/assets
      chmod 0777 appapi/runtime
      chmod 0777 appapi/web/assets
      chmod 0777 appfront/runtime
      chmod 0777 appfront/web/assets
      chmod 0777 appfront/web/cn/assets
      chmod 0777 appfront/web/fr/assets
      chmod 0777 appfront/web/sitemap.xml
      chmod 0777 appfront/web/sitemap_es.xml
      chmod 0777 appfront/web/fr/sitemap.xml
      chmod 0777 appfront/web/cn/sitemap.xml
      chmod 0777 apphtml5/runtime
      chmod 0777 apphtml5/web/assets
      chmod 0777 apphtml5/web/sitemap.xml
      chmod 0777 apphtml5/web/sitemap_es.xml
      chmod 0777 apphtml5/web/fr/sitemap.xml
      chmod 0777 apphtml5/web/cn/sitemap.xml
      chmod 0777 appserver/runtime
      chmod 0777 appserver/web/assets
      chmod 0777 appimage/common/media/catalog/product
      chmod 0755 yii
      chmod 0755 tests/codeception/bin/yii

  ... initialization completed.

root@21b9518c220b:/www/web/fecshop#

composer

Fecshop

2.2

(),composer http://pan.baidu.com/s/1hs1iC2C

./app/ fecshop ./app/fecshop fecshop

cd fecshop
./init

exitphpdocker

Fecshop

fecshop

Fecshop

Terry ./example_data/ ./example_data/fecshop/*``./app/fecshop ./example_data/``./app/fecshop

1hostsipwindowhost(C:\Windows\System32\drivers\etc\hosts,IP 127.0.0.1 IP)

127.0.0.1       my.fecshop.com       # mysqlphpmyadmin
127.0.0.1       appadmin.fecshop.com # 
127.0.0.1       appfront.fecshop.com # pc
127.0.0.1       appfront.fecshop.es  # pc es 
127.0.0.1       apphtml5.fecshop.com # html
127.0.0.1       appapi.fecshop.com   # api
127.0.0.1       appserver.fecshop.com # server
127.0.0.1       img.fecshop.com		#appimage/common   
127.0.0.1       img2.fecshop.com	#appimage/appadmin 
127.0.0.1       img3.fecshop.com	#appimage/appfront 
127.0.0.1       img4.fecshop.com	#appimage/apphtml5 
127.0.0.1       img5.fecshop.com	#appimage/appserver

host#

127.0.0.1 my.fecshop.com # mysqlphpmyadmin 127.0.0.1 my.fecshop.com , host

2../example_data

fecshopTerry ./example_data cp ./app/fecshop

2.1

./example_data/fecshop/common/config/main-local.php ,mysqlredisredissession cache

host127.0.0.1hostdockerhostipip127.0.0.1,http://www.fecshop.com/topic/935

  1. 1host(win hosts)

win hostshostfecshop

nginx./services/web/nginx/conf/conf.d/default.conf

3.1Store

nginx

fecshop ./example_data/fecshop/ store

@appfront/config/fecshop_local_services/Store.php

@apphtml5/config/fecshop_local_services/Store.php

@appserver/config/fecshop_local_services/Store.php

:Fecshop4

3.2nginx fecshopfec./example_data/fecshop/common/config/fecshop_local_services/Image.php

nginxnginxnginx

nginxfec./example_data/fecshop/common/config/fecshop_local_services/Image.php

4.fecshop

4.1./example_data/fecshop/* ./app/fecshop/

./example_data/

// fecshop3store  ./app/fecshop
\cp -rf ./fecshop/* ../app/fecshop/
// ./app/fecshop
unzip -o ./example_img_and_db_data/appimage.zip  -d  ../app/fecshop/

,

5.Yii2 migrate

docker-compose exec php bash
cd /www/web/fecshop

mysql(mysql):

./yii migrate --interactive=0 --migrationPath=@fecshop/migrations/mysqldb

mongodb(mongodb):

./yii mongodb-migrate  --interactive=0 --migrationPath=@fecshop/migrations/mongodb

exit,

6.1mongodb

githubmongodb

docker-compose exec mongodb bash
mongo mongodb:27017/fecshop --quiet /data/example_db/mongo-fecshop_test-20170419-065157.js

exit,

6.2mysql

(docker-compose.yml)mysql

docker-compose exec mysql bash

mysql -uroot -p mysql

use fecshop;
source /var/example_db/mysql_fecshop.sql
exit

exit,

(docker-compose.yml)php

docker-compose exec php bash

ubuntu 6.10 ubuntu bash shell dash shell /bin/sh /bin/dash/bin/bash http://blog.csdn.net/liuqinglong_along/article/details/52191382

dpkg-reconfigure dash
no

9.3.


cd /www/web/fecshop/vendor/fancyecommerce/fecshop/shell/search
sh fullSearchSync.sh    //ubuntubash

exitphp

docker-compose (yii2_fecshop_docker)

docker-compose stop
docker-compose up -d

,

pc: appfront.fecshop.com

html5apphtml5.fecshop.com

appapi appapi.fecshop.com

appserver: appserver.fecshop.com

appadmin appadmin.fecshop.com , admin admin123

console consolephp /www/web/fecshop

1.centos7docker

systemctl enable docker

2.docker-compose

vim /etc/rc.d/rc.local ,

/usr/local/bin/docker-compose -f /www/web/yii2_fecshop_docker/docker-compose.yml up -d

/www/web/yii2_fecshop_docker

VUE

VUEappserverapivue

  1. yii2_fecshop_docker/app , vue_fecshop_appserver yii2_fecshop_docker/app/

https://github.com/fecshop/vue_fecshop_appserver

2.6

npm run build

http://vue.fecshop.com nginx

OK,fecshop docker compose

so easyfecshop

GUI

1.mongodb

RoboMongohttps://robomongo.org/download sshmongodb

sshmongodb

1.1 Dockerize an SSH service

1.2 ./services/ssh/docker/Dockerfile , RUN echo 'root:setyoupasss22XXXcreencast' | chpasswd ,setyoupasss22XXXcreencast root

1.3 docker-compose.yml, services

ssh1:
    build:
      context: ./services/ssh/docker/
    networks:
      - code-network
    ports:
      - "2222:22"

docker-compose.yml

docker-compose.yml

docker-compose.yml

version: "2"
services:
  web:
    image: nginx
    ports:
      - "80:80"
    restart: always
    volumes:
      - ./app:/www/web
      - ./services/web/nginx/conf:/etc/nginx
      - ./services/web/nginx/logs:/www/web_logs
    networks:
        - code-network
    depends_on:
      - php
  ...  // 
  redis:
    image: redis
    restart: always
    ports:
      - "6379:6379"
    environment:
        REDIS_PASS_FILE: /run/secrets/redis-password
    command: [
      "bash", "-c",
      '
       docker-entrypoint.sh
       --requirepass "$$(cat $$REDIS_PASS_FILE)"
      '
    ]
    volumes:
      - ./db/redis/etc/redis.conf:/usr/local/etc/redis/redis.conf
      - ./db/redis/data:/data
      - ./db/redis/etc/redis-password:/run/secrets/redis-password
    networks:
      - code-network
  mongodb:
    image: mongo:3.7
    restart: always
    environment:
      - MONGO_DATA_DIR=/data/db
      - MONGO_LOG_DIR=/data/logs
    volumes:
      - ./db/mongodb/data:/data/db
      - ./db/mongodb/example_db:/data/example_db
      - ./db/mongodb/logs:/data/logs
    networks:
      - code-network
  ssh1:
    build:
      context: ./services/ssh/docker/
    networks:
      - code-network
    ports:
      - "2222:22"
networks:
  code-network:
    driver: bridge

1.4mongodb mongod.confipssh1mongodb

db/mongodb/etc/mongod.conf29bindIp: php, bindIp: php,ssh1

docker-compose

1.5robomongomongodb connectscreateconnectionssh tab

1.5.1 connection typeredirect connectionnamefecshopAddreddmongodb : 27017

1.5.2 SSHUse SSH tunnel

ssh address IP``2222

ssh User Name : root

ssh Auth Method: password

User Password1.2./services/ssh/docker/Dockerfile ``

save

2.mysql

phpmyadmin

cd ./app
wget https://files.phpmyadmin.net/phpMyAdmin/4.7.7/phpMyAdmin-4.7.7-all-languages.zip
unzip phpMyAdmin-4.7.7-all-languages.zip
mv phpMyAdmin-4.7.7-all-languages  phpmyadmin
cd phpmyadmin/
vim libraries/config.default.php
//117
$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['host'] = 'mysql';

my.fecshop.com mysqldocker-compose.ymlmysql

my.fecshop.comnginx,nginx /services/web/nginx/conf/conf.d/default.conf

OKso easy fecshop^-^,,


docker

1.httpsDockerLet's EncryptHTTPS

http://www.fecshop.com/topic/1249

2.docker-compose cronshell

http://www.fecshop.com/topic/1296


QA:

1.php

docker-compose.yml.aliyun   	docker-compose.yml 
docker-compose build --no-cache

docker-compose.yml.aliyunphpdocker

docker-compose.yml.php.hub phphub.docker.com