Dockerize magento 2 24.02.2016

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/
1 von 13

Recomendados

Red Hat Container Development Kit von
Red Hat Container Development KitRed Hat Container Development Kit
Red Hat Container Development KitLalatendu Mohanty
556 views30 Folien
Paris Container Day 2016 : Cloud de conteneurs, conteneurs dans le cloud, str... von
Paris Container Day 2016 : Cloud de conteneurs, conteneurs dans le cloud, str...Paris Container Day 2016 : Cloud de conteneurs, conteneurs dans le cloud, str...
Paris Container Day 2016 : Cloud de conteneurs, conteneurs dans le cloud, str...Publicis Sapient Engineering
285 views25 Folien
DevOps Practices @Pipedrive von
DevOps Practices @PipedriveDevOps Practices @Pipedrive
DevOps Practices @PipedriveRenno Reinurm
676 views12 Folien
Paris Container Day 2016 : Deep dive dc-os ci-cd (Mesosphere & Container Solu... von
Paris Container Day 2016 : Deep dive dc-os ci-cd (Mesosphere & Container Solu...Paris Container Day 2016 : Deep dive dc-os ci-cd (Mesosphere & Container Solu...
Paris Container Day 2016 : Deep dive dc-os ci-cd (Mesosphere & Container Solu...Publicis Sapient Engineering
659 views23 Folien
Default GitLab CI Pipeline - Auto DevOps von
Default GitLab CI Pipeline - Auto DevOpsDefault GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOpsRajith Bhanuka Mahanama
187 views21 Folien
Gitlab ci-cd von
Gitlab ci-cdGitlab ci-cd
Gitlab ci-cdDan MAGIER
3.4K views27 Folien

Más contenido relacionado

Was ist angesagt?

Kubernetes CRI containerd integration by Lantao Liu (Google) von
Kubernetes CRI containerd integration by Lantao Liu (Google)Kubernetes CRI containerd integration by Lantao Liu (Google)
Kubernetes CRI containerd integration by Lantao Liu (Google)Docker, Inc.
33.5K views19 Folien
Elasticsearch Monitoring in Openshift von
Elasticsearch Monitoring in OpenshiftElasticsearch Monitoring in Openshift
Elasticsearch Monitoring in OpenshiftLukas Vlcek
238 views28 Folien
Docker at MoneyBird von
Docker at MoneyBirdDocker at MoneyBird
Docker at MoneyBirdEdwin Vlieg
808 views17 Folien
Paris Container Day 2016 : Retour sur DockerCon 16', faits marquants (Docker) von
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)Publicis Sapient Engineering
190 views25 Folien
OpenCms Days 2012 - Developing OpenCms with Gradle von
OpenCms Days 2012 - Developing OpenCms with GradleOpenCms Days 2012 - Developing OpenCms with Gradle
OpenCms Days 2012 - Developing OpenCms with GradleAlkacon Software GmbH & Co. KG
907 views15 Folien
Introducing docker von
Introducing dockerIntroducing docker
Introducing dockerBill Wang
511 views18 Folien

Was ist angesagt?(20)

Kubernetes CRI containerd integration by Lantao Liu (Google) von Docker, Inc.
Kubernetes CRI containerd integration by Lantao Liu (Google)Kubernetes CRI containerd integration by Lantao Liu (Google)
Kubernetes CRI containerd integration by Lantao Liu (Google)
Docker, Inc.33.5K views
Elasticsearch Monitoring in Openshift von Lukas Vlcek
Elasticsearch Monitoring in OpenshiftElasticsearch Monitoring in Openshift
Elasticsearch Monitoring in Openshift
Lukas Vlcek238 views
Docker at MoneyBird von Edwin Vlieg
Docker at MoneyBirdDocker at MoneyBird
Docker at MoneyBird
Edwin Vlieg808 views
Introducing docker von Bill Wang
Introducing dockerIntroducing docker
Introducing docker
Bill Wang511 views
Using GitLab CI von ColCh
Using GitLab CIUsing GitLab CI
Using GitLab CI
ColCh9.9K views
Kubernetes and OpenStack at Scale von Stephen Gordon
Kubernetes and OpenStack at ScaleKubernetes and OpenStack at Scale
Kubernetes and OpenStack at Scale
Stephen Gordon1.4K views
OSDC 2017 - Dr. Udo Seidel - VMwares (open source) Way of Container von NETWAYS
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
NETWAYS90 views
LinuxKit: the first five months by Justin Cormack & Riyaz Faizullabhoy (Docker) von Docker, Inc.
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)
Docker, Inc.1.4K views
[20200720]cloud native develoment - Nelson Lin von HanLing Shen
[20200720]cloud native develoment - Nelson Lin[20200720]cloud native develoment - Nelson Lin
[20200720]cloud native develoment - Nelson Lin
HanLing Shen132 views
Real World Enterprise Reactive Programming using Vert.x von Sascha Möllering
Real World Enterprise Reactive Programming using Vert.xReal World Enterprise Reactive Programming using Vert.x
Real World Enterprise Reactive Programming using Vert.x
Sascha Möllering2.4K views
Architectural caching patterns for kubernetes von Rafał Leszko
Architectural caching patterns for kubernetesArchitectural caching patterns for kubernetes
Architectural caching patterns for kubernetes
Rafał Leszko257 views
The Self-Service Developer - GOTOCon CPH von Laszlo Fogas
The Self-Service Developer - GOTOCon CPHThe Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPH
Laszlo Fogas90 views
State of Builder and Buildkit by Tonis Tiigi (Docker) von Docker, Inc.
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)
Docker, Inc.1.5K views
Webinar slides: How to automate and manage MongoDB & Percona Server for MongoDB von Severalnines
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
Severalnines466 views
Introduction to Docker Compose von Prabhas Gupte
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker Compose
Prabhas Gupte421 views

Similar a Dockerize magento 2 24.02.2016

Wordcamp Bratislava 2017 - Docker! Why? von
Wordcamp Bratislava 2017 - Docker! Why?Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?Adam Štipák
380 views15 Folien
Multiplier Effect: Case Studies in Distributions for Publishers von
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for PublishersJon Peck
423 views37 Folien
Deploying software at Scale von
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
2.5K views44 Folien
Taking Docker to Production: What You Need to Know and Decide von
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 DecideBret Fisher
53 views62 Folien
Taking Docker to Production: What You Need to Know and Decide von
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 DecideDocker, Inc.
1K views62 Folien
Microservices at Mercari von
Microservices at MercariMicroservices at Mercari
Microservices at MercariGoogle Cloud Platform - Japan
17.2K views72 Folien

Similar a Dockerize magento 2 24.02.2016(20)

Wordcamp Bratislava 2017 - Docker! Why? von Adam Štipák
Wordcamp Bratislava 2017 - Docker! Why?Wordcamp Bratislava 2017 - Docker! Why?
Wordcamp Bratislava 2017 - Docker! Why?
Adam Štipák380 views
Multiplier Effect: Case Studies in Distributions for Publishers von Jon Peck
Multiplier Effect: Case Studies in Distributions for PublishersMultiplier Effect: Case Studies in Distributions for Publishers
Multiplier Effect: Case Studies in Distributions for Publishers
Jon Peck423 views
Deploying software at Scale von Kris Buytaert
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
Kris Buytaert2.5K views
Taking Docker to Production: What You Need to Know and Decide von Bret Fisher
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
Bret Fisher53 views
Taking Docker to Production: What You Need to Know and Decide von Docker, Inc.
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
Docker, Inc.1K views
Dockerizing Aurea - Docker Con EU 2017 von Matias Lespiau
Dockerizing Aurea - Docker Con EU 2017Dockerizing Aurea - Docker Con EU 2017
Dockerizing Aurea - Docker Con EU 2017
Matias Lespiau533 views
Bgoug 2019.11 building free, open-source, plsql products in cloud von Jacek Gebal
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
Jacek Gebal349 views
Warden @ Meet magento Romania 2021 von alinalexandru
Warden @ Meet magento Romania 2021Warden @ Meet magento Romania 2021
Warden @ Meet magento Romania 2021
alinalexandru38 views
ContainerCon - Test Driven Infrastructure von Yury Tsarev
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven Infrastructure
Yury Tsarev2.6K views
"[WORKSHOP] K8S for developers", Denis Romanuk von Fwdays
"[WORKSHOP] K8S for developers", Denis Romanuk"[WORKSHOP] K8S for developers", Denis Romanuk
"[WORKSHOP] K8S for developers", Denis Romanuk
Fwdays203 views
Truemotion Adventures in Containerization von Ryan Hunter
Truemotion Adventures in ContainerizationTruemotion Adventures in Containerization
Truemotion Adventures in Containerization
Ryan Hunter200 views
Best practices for developing your Magento Commerce on Cloud von Oleg Posyniak
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
Oleg Posyniak561 views
GeoServer Developers Workshop von Jody Garnett
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
Jody Garnett7.1K views
6 Months Sailing with Docker in Production von Hung Lin
6 Months Sailing with Docker in Production 6 Months Sailing with Docker in Production
6 Months Sailing with Docker in Production
Hung Lin761 views
Container orchestration and microservices world von Karol Chrapek
Container orchestration and microservices worldContainer orchestration and microservices world
Container orchestration and microservices world
Karol Chrapek191 views
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With... von Nagios
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...
Nagios1.9K views
On-Demand Image Resizing Extended - External Meet-up von Jonathan Lee
On-Demand Image Resizing Extended - External Meet-upOn-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-up
Jonathan Lee201 views
Docker primer and tips von Samuel Chow
Docker primer and tipsDocker primer and tips
Docker primer and tips
Samuel Chow108 views
Docker + Microservices in Production von Patrick Mizer
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in Production
Patrick Mizer398 views

Último

PRODUCT LISTING.pptx von
PRODUCT LISTING.pptxPRODUCT LISTING.pptx
PRODUCT LISTING.pptxangelicacueva6
14 views1 Folie
Kyo - Functional Scala 2023.pdf von
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfFlavio W. Brasil
400 views92 Folien
Design Driven Network Assurance von
Design Driven Network AssuranceDesign Driven Network Assurance
Design Driven Network AssuranceNetwork Automation Forum
15 views42 Folien
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors von
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensorssugiuralab
21 views15 Folien
NET Conf 2023 Recap von
NET Conf 2023 RecapNET Conf 2023 Recap
NET Conf 2023 RecapLee Richardson
10 views71 Folien
PRODUCT PRESENTATION.pptx von
PRODUCT PRESENTATION.pptxPRODUCT PRESENTATION.pptx
PRODUCT PRESENTATION.pptxangelicacueva6
15 views1 Folie

Último(20)

TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors von sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab21 views
Special_edition_innovator_2023.pdf von WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2218 views
Business Analyst Series 2023 - Week 3 Session 5 von DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10300 views
Unit 1_Lecture 2_Physical Design of IoT.pdf von StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec12 views
Serverless computing with Google Cloud (2023-24) von wesley chun
Serverless computing with Google Cloud (2023-24)Serverless computing with Google Cloud (2023-24)
Serverless computing with Google Cloud (2023-24)
wesley chun11 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive von Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
HTTP headers that make your website go faster - devs.gent November 2023 von Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn22 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 von IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院

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