Magento 2 OSX/Linux Docker
Requirements
MacOS: Docker, docker-sync, Git
Linux: Docker, Docker-compose, Git
on Debian based OS (Example: Ubuntu, Linux Mint) use
bin/docker.sh
to installdocker
anddocker-compose
Get Source
git clone https://github.com/aliuosio/mage2.docker.git
Installation
Fresh Installation (latest magento 2 version) or your running project when located in your filesystem
cd mage2.docker
chmod +x bin/*.sh
bin/install.sh
with
bin/install config
you can use prompts to configure install
use .env to change values after installation and activate on restart of containers
Backend
http://localhost/admin
User: mage2_admin
Password: mage2_admin123#T
Frontend
http://localhost
OSX: on first run very slow due to docker-sync update of local shop files volume in the background. See .docker-sync/daemon.log
for progress
next startup after reboot of Host
bin/start.sh
Install sample data
chmod +x sample-data.sh
bin/sample-data.sh
PHP Container Usage
docker exec -it mage2_php bash
Elasticsearch Usage
** Configured automatically with install.sh **
In Magento 2 Backend stores
-Configuration
-Catalog
-Catalog
-Tab: Catalog Search
Search Engine: Elasticsearch 7.0+
Elasticsearch Server Hostname: elasticsearch
You MUST set sysctl -w vm.max_map_count=262144
on the docker host system or the elasticsearch container goes down On OSX see link: https://stackoverflow.com/questions/41192680/update-max-map-count-for-elasticsearch-docker-container-mac-host?rq=1
Mailhog Usage
Mail Client
http://localhost:8025
In Magento 2 Backend `stores` -`Configuration` -`Advanced` -`System`
-`Tab: SMTP Configuration and Settings (Gmail/Google/AWS/Office360 etc)`
Authentication method: NONE
SSL type: None
SMTP Host: mailhog
SMTP Port: 1025
Features
- Fresh Install or use magento 2 project on your file system using
bin/install.sh
- Varnish Cache Container
- alternative OSX docker-compose file using docker-sync for better performance
- set Magento 2 Versions as configurable option of
bin/ìnstall.sh
- using watchtower container to keep the containers current
- set project directory to where ever you want (as configurable option in .env)
- set PHP-FPM minor Versions under 7 (7.0, 7.1, 7.2, 7.3) as configurable option
- http basic authentication
- container to register SSL Cert by letsencrypt (only with valid domain)
- setup valid SSL certificates with Let's Encrypt container
- Mailhog container
- Magerun2 netz98 magerun CLI tools for Magento 2
- Extra Composer Packages with Magento 2 Installer
- magepal/magento2-gmailsmtpapp SMTP Module
- yireo/magento2-webp2 WebP Converter
- mage2tv/magento-cache-clean Cache Cleaner
- both PHP GD and PHP Imagick are installed
- PHP Xdebug as configurable option (xdebug.idekey=docker)
- PHP Opcache enabled
- PHP redis enabled
- us your local User ssh keys from host in PHP container
- set Project Name and Namespace through
bin/ìnstall.sh
prompt - create backup of
.env
afterbin/install.sh
usage - only create
mage2_admin
user on fresh install ininstall.sh
bin/install.sh
creates secure MariaDB passwords and saves them to.env
- added prompt for SSL to
bin/ìnstall.sh
Todos
add Healtchecks to docker-composemodify installer to use config flag instead of flag kickitbuild own ElasticSearch Image with required Plugins for Magento 2fix OSX Installerchange PHP container OS from debian to alpineset Time and Zone according to hostmap local user to php container www-data userthanks to fixuid- add DB Import functions and logs
- add downloader script to clone and install App
modify for running Magento 2 project- refactor docker-compose.osx.yml
- Exchange
docker-sync
withMutagen
- reduce the number of volumes
- Docker letsencrypt certification Container
exchange MySQL with MariaDB as soon as Magento 2 Installer fixes Mariadb container again- make Webserver(Apache or Nginx) configurable in
bin/install.sh
anddocker-entrypoint.sh
- rename config_blueprints to config and move config files to .docker/config
- simplify letsencrypt certificate embedding in nginx container
- Nginx Header Config passes at https://securityheaders.com/
Bugs
- fix SSL
Support
If you encounter any problems or bugs, please create an issue on GitHub.
Contribute
Please Contribute by creating a fork of this repository.
Follow the instructions here: https://help.github.com/articles/fork-a-repo/