SlideShare uma empresa Scribd logo
1 de 13
Dockerize Magento 2
Ing. Mag. Andreas Pointner
Andreas Pointner
● Business Informatics @ JKU
● Magento Developer since 2008
● Certification 2014
github.com/copex
hub.docker.com/u/copex/
copex.io 2
Docker
● Containerize
● Use the same container in
○ Production
○ Staging
○ Development
● Scalable
● Limit ressources
● Link the containers with docker-compose
3
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
Which containers do we need?
● APP
○ PHP-FPM
○ Nginx (Apache)
● Mysql (Mariadb)
● Cron ?
● Redis ?
○ Cache
○ Session
● Varnish ?
5
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
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
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
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
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
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
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
Thanks!
Questions?
13
https://copex.io/blog/tag/docker/

Mais conteúdo relacionado

Mais procurados

Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDBWebinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Severalnines
 

Mais procurados (20)

Kubernetes CRI containerd integration by Lantao Liu (Google)
Kubernetes CRI containerd integration by Lantao Liu (Google)Kubernetes CRI containerd integration by Lantao Liu (Google)
Kubernetes CRI containerd integration by Lantao Liu (Google)
 
Elasticsearch Monitoring in Openshift
Elasticsearch Monitoring in OpenshiftElasticsearch Monitoring in Openshift
Elasticsearch Monitoring in Openshift
 
Docker at MoneyBird
Docker at MoneyBirdDocker at MoneyBird
Docker at MoneyBird
 
Paris Container Day 2016 : Retour sur DockerCon 16', faits marquants (Docker)
Paris Container Day 2016 : Retour sur DockerCon 16', faits marquants (Docker)Paris Container Day 2016 : Retour sur DockerCon 16', faits marquants (Docker)
Paris Container Day 2016 : Retour sur DockerCon 16', faits marquants (Docker)
 
OpenCms Days 2012 - Developing OpenCms with Gradle
OpenCms Days 2012 - Developing OpenCms with GradleOpenCms Days 2012 - Developing OpenCms with Gradle
OpenCms Days 2012 - Developing OpenCms with Gradle
 
Introducing docker
Introducing dockerIntroducing docker
Introducing docker
 
Using GitLab CI
Using GitLab CIUsing GitLab CI
Using GitLab CI
 
Kubernetes and OpenStack at Scale
Kubernetes and OpenStack at ScaleKubernetes and OpenStack at Scale
Kubernetes and OpenStack at Scale
 
OSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of Container
OSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of ContainerOSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of Container
OSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of Container
 
Docker & azure
Docker & azureDocker & azure
Docker & azure
 
LinuxKit: the first five months by Justin Cormack & Riyaz Faizullabhoy (Docker)
LinuxKit: the first five months by Justin Cormack & Riyaz Faizullabhoy (Docker)LinuxKit: the first five months by Justin Cormack & Riyaz Faizullabhoy (Docker)
LinuxKit: the first five months by Justin Cormack & Riyaz Faizullabhoy (Docker)
 
[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin
 
Real World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.xReal World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.x
 
Architectural caching patterns for kubernetes
Architectural caching patterns for kubernetesArchitectural caching patterns for kubernetes
Architectural caching patterns for kubernetes
 
The Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHThe Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPH
 
From Zero to Hero - Nexinto
From Zero to Hero - NexintoFrom Zero to Hero - Nexinto
From Zero to Hero - Nexinto
 
State of Builder and Buildkit by Tonis Tiigi (Docker)
State of Builder and Buildkit by Tonis Tiigi (Docker)State of Builder and Buildkit by Tonis Tiigi (Docker)
State of Builder and Buildkit by Tonis Tiigi (Docker)
 
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDBWebinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDB
 
Azure DocumentDb
Azure DocumentDbAzure DocumentDb
Azure DocumentDb
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker Compose
 

Semelhante a Dockerize magento 2 24.02.2016

Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in Production
Patrick Mizer
 

Semelhante a Dockerize magento 2 24.02.2016 (20)

Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?
 
Multiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Taking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideTaking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and Decide
 
Taking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and DecideTaking Docker to Production: What You Need to Know and Decide
Taking Docker to Production: What You Need to Know and Decide
 
Microservices at Mercari
Microservices at MercariMicroservices at Mercari
Microservices at Mercari
 
Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017
 
Bgoug 2019.11 building free, open-source, plsql products in cloud
Bgoug 2019.11   building free, open-source, plsql products in cloudBgoug 2019.11   building free, open-source, plsql products in cloud
Bgoug 2019.11 building free, open-source, plsql products in cloud
 
Warden @ Meet magento Romania 2021
Warden @ Meet magento Romania 2021Warden @ Meet magento Romania 2021
Warden @ Meet magento Romania 2021
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven Infrastructure
 
"[WORKSHOP] K8S for developers", Denis Romanuk
"[WORKSHOP] K8S for developers", Denis Romanuk"[WORKSHOP] K8S for developers", Denis Romanuk
"[WORKSHOP] K8S for developers", Denis Romanuk
 
Truemotion Adventures in Containerization
Truemotion Adventures in ContainerizationTruemotion Adventures in Containerization
Truemotion Adventures in Containerization
 
Best practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on CloudBest practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on Cloud
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 
6 Months Sailing with Docker in Production
6 Months Sailing with Docker in Production 6 Months Sailing with Docker in Production
6 Months Sailing with Docker in Production
 
Container orchestration and microservices world
Container orchestration and microservices worldContainer orchestration and microservices world
Container orchestration and microservices world
 
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
 
On-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-upOn-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-up
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tips
 
Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in Production
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Último (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Dockerize magento 2 24.02.2016

  • 1. Dockerize Magento 2 Ing. Mag. Andreas Pointner
  • 2. Andreas Pointner ● Business Informatics @ JKU ● Magento Developer since 2008 ● Certification 2014 github.com/copex hub.docker.com/u/copex/ copex.io 2
  • 3. Docker ● Containerize ● Use the same container in ○ Production ○ Staging ○ Development ● Scalable ● Limit ressources ● Link the containers with docker-compose 3
  • 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. Which containers do we need? ● APP ○ PHP-FPM ○ Nginx (Apache) ● Mysql (Mariadb) ● Cron ? ● Redis ? ○ Cache ○ Session ● Varnish ? 5
  • 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. 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. 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. 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. 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. 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. 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