Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Dockerize Magento 2
Ing. Mag. Andreas Pointner
Andreas Pointner
● Business Informatics @ JKU
● Magento Developer since 2008
● Certification 2014
github.com/copex
hub.doc...
Docker
● Containerize
● Use the same container in
○ Production
○ Staging
○ Development
● Scalable
● Limit ressources
● Lin...
Why Docker?
● No data overhead compared to vagrant
● No rsync or nfs-mount needed for development environment
○ Union File...
Which containers do we need?
● APP
○ PHP-FPM
○ Nginx (Apache)
● Mysql (Mariadb)
● Cron ?
● Redis ?
○ Cache
○ Session
● Var...
APP - PHP
● PHP-5.6
apt-get --no-install-recommends -y --force-yes
install 
php5-mysql 
php5-imagick 
php5-mcrypt 
php5-cu...
APP - Nginx
FROM copex/php
apt-get --no-install-recommends -y --force-yes install nginx php5-fpm
● runit
● SSL-Support
● d...
Docker-Compose - app
app:
image: copex/nginx-php-fpm:dev
ports:
- "80:80"
- "443:443"
- "1080:1080"
links:
- "mysql:mysql"...
Docker-Compose - Database
mysql:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: "r00t"
MYSQL_USER: "magento"
MYSQL_PASSW...
Docker Compose - Data & Cron
data:
image: tianon/true
volumes:
- .:/var/www
- ./config/nginx/site-templates/:/etc/nginx/si...
Composer.json
{ "name": "copex/magento2-skeleton",
"type": "project",
"authors": [ { name": "Andreas Pointner","email": "a...
Start & Install Magento
● composer install
● docker-compose up -d
● docker exec -it magento2demo_app_1 bin/n98-magerun2 in...
Thanks!
Questions?
13
https://copex.io/blog/tag/docker/
Nächste SlideShare
Wird geladen in …5
×

Dockerize magento 2 24.02.2016

752 Aufrufe

Veröffentlicht am

A brief introduction on how to run Magento 2 within docker. This slides explane how to install Magento 2 with composer, boot up all needed docker containers and run them on your local environment. This slides were presented at the magento-meetup-wien.

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

Dockerize magento 2 24.02.2016

  1. 1. Dockerize Magento 2 Ing. Mag. Andreas Pointner
  2. 2. Andreas Pointner ● Business Informatics @ JKU ● Magento Developer since 2008 ● Certification 2014 github.com/copex hub.docker.com/u/copex/ copex.io 2
  3. 3. Docker ● Containerize ● Use the same container in ○ Production ○ Staging ○ Development ● Scalable ● Limit ressources ● Link the containers with docker-compose 3
  4. 4. Why Docker? ● No data overhead compared to vagrant ● No rsync or nfs-mount needed for development environment ○ Union File System ● Extremely fast development and environment setup ● Same behaviour everywhere ● Server provisioning becomes unnecessary ● Roll out tested server updates within seconds to all your clients ● Ability to cluster containers across multiple servers ● Test very complex server setup locally 4
  5. 5. Which containers do we need? ● APP ○ PHP-FPM ○ Nginx (Apache) ● Mysql (Mariadb) ● Cron ? ● Redis ? ○ Cache ○ Session ● Varnish ? 5
  6. 6. APP - PHP ● PHP-5.6 apt-get --no-install-recommends -y --force-yes install php5-mysql php5-imagick php5-mcrypt php5-curl php5-cli php5-memcache php5-intl php5-gd php5-redis php5-xsl php5-intl curl 6
  7. 7. APP - Nginx FROM copex/php apt-get --no-install-recommends -y --force-yes install nginx php5-fpm ● runit ● SSL-Support ● dev ○ mailcatcher ○ xdebug ○ mysql-client 7
  8. 8. Docker-Compose - app app: image: copex/nginx-php-fpm:dev ports: - "80:80" - "443:443" - "1080:1080" links: - "mysql:mysql" environment: DOMAIN: magento2.local MAGENTO_ROOT: /var/www/htdocs MAGENTO_DEVELOPERMODE: 0 volumes_from: - data 8
  9. 9. Docker-Compose - Database mysql: image: mariadb environment: MYSQL_ROOT_PASSWORD: "r00t" MYSQL_USER: "magento" MYSQL_PASSWORD: "magento" MYSQL_DATABASE: "magento" volumes_from: - dbdata ports: - "3306:3306" 9
  10. 10. Docker Compose - Data & Cron data: image: tianon/true volumes: - .:/var/www - ./config/nginx/site-templates/:/etc/nginx/sites-templates/ dbdata: image: tianon/true volumes: - /var/lib/mysql cron: image: copex/cron links: - "mysql:mysql" volumes_from: - data 10
  11. 11. Composer.json { "name": "copex/magento2-skeleton", "type": "project", "authors": [ { name": "Andreas Pointner","email": "andreas.pointner@copex.io", "homepage": "http://copex.io/" } ], "repositories": [ {"type": "composer", "url": "https://repo.magento.com/" }], "require": { "magento/product-community-edition": "2.0.2", "n98/magerun2": "dev-master" }, "autoload": { "psr-4": { "MagentoFramework": "lib/internal/Magento/Framework/", "MagentoSetup": "setup/src/Magento/Setup/", "Magento": "app/code/Magento/" }, … }, "scripts": { ... }, "minimum-stability": "dev", "prefer-stable": true, "extra": { "magento-force": "override" } } 11
  12. 12. Start & Install Magento ● composer install ● docker-compose up -d ● docker exec -it magento2demo_app_1 bin/n98-magerun2 install --useDefaultConfigParams=yes --installationFolder="." --dbHost=mysql --dbUser=magento --dbPass=magento --dbName=magento --baseUrl=http://magento2.local/ --noDownload --forceUseDb=true ● sudo chgrp www-data -Rf pub/media pub/static var && sudo chmod 775 -Rf pub/media pub/static var 12
  13. 13. Thanks! Questions? 13 https://copex.io/blog/tag/docker/

×