tddwizard / magento2-dockerized
Docker infrastructure definitions for Magento 2 dev/test environment. Based on arvatoscm/dockerize-magento2
Installs: 46
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 4
Forks: 2
Open Issues: 0
Language:Shell
Type:magento2-component
This package is not auto-updated.
Last update: 2024-11-02 16:54:34 UTC
README
A composer package for dockerizing Magento 2
The composer package tddwizard/magento2-dockerized deploys docker infrastructure defintion files such as docker-compose.yml to your Magento 2 root folder and enables you to host your Magento 2 shops without having to install Apache/Nginx, MySQL or PHP on your system.
Package Name
tddwizard/magento2-dockerized
(fork of arvatoscm/dockerize-magento2
)
Software Requirements
For Linux users you must have a recent version of docker and docker-compose installed.
If you are a Mac or Windows user, use the Docker Toolbox.
Installation
Add tddwizard/magento2-dockerized
to your existing Magento 2 shop:
composer require --ignore-platform-reqs tddwizard/magento2-dockerized chmod +x bin/console
This will place some files in your Magento root:
docker-compose.yml
The docker infrastructure definitionbin/console
A utility script for controlling dockerized Magento projectsconfig
A folder which contains the configuration files for PHP, Nginx and phpMyAdmin
Usage
dockerize-magento2
comes with bin/console
script that can be used to install Magento and to execute Magentos' bin/magento script inside the PHP docker container:
Trigger the Magento 2 installation process:
bin/console install <hostname>
Start the docker containers:
bin/console start
Stop the docker containers:
bin/console stop
Execute bin/magento
inside the docker container:
bin/console exec [arguments]
For more information on how to use docker-compose visit: https://docs.docker.com/compose/
Configuration
The install
action depends on some parameters such as usernames and passwords. We have put in some default values for you that will work for a quick test:
DATABASE_NAME="magento2dockerized"
DATABASE_USER="magento"
DATABASE_PASSWORD="enAVINa2"
DATABASE_ROOT_PASSWORD="enAVINa2"
ADMIN_USERNAME="admin"
ADMIN_FIRSTNAME="Admin"
ADMIN_LASTNAME="Inistrator"
ADMIN_EMAIL="johndoe@example.com"
ADMIN_PASSWORD="enAVINa2"
DEFAULT_LANGUAGE="en_US"
DEFAULT_CURRENCY="EUR"
DEFAULT_TIMEZONE="Europe/Berlin"
BACKEND_FRONTNAME="management"
If you want to use different parameters change the values in the .env file to your needs.
After customizing the parameters just run trigger the installation with bin/console install <hostname>
.
Integration Tests
Setup
-
Copy
dev/tests/integration/etc/install-config-mysql.php.dist
todev/tests/integration/etc/install-config-mysql.php
-
Change database parameters in
dev/tests/integration/etc/install-config-mysql.php
:'db-host' => 'mysql', 'db-user' => 'root', 'db-password' => 'enAVINa2', 'db-name' => 'magento_integration_tests', 'db-prefix' => '',
Running Tests
After the integration test container is set up as described above, you can run the tests with this command:
docker-compose -f docker-compose.yml -f docker-compose.integration-tests.yml run --rm integration
Functional Tests
Setup
-
run
composer install
indev/tests/functional
-
copy
dev/tests/functional/phpunit.xml.dist
todev/tests/functional/phpunit.xml
and change values forapp_frontend_url
andapp_backend_url
. It is also a good idea to addstopOnError="true"
to the<phpunit>
element. -
copy
dev/tests/functional/etc/config.xml.dist
todev/tests/functional/etc/config.xml
and change values forbackendLogin
,backendPassword
,appBackendUrl
in<application>
. Also, add the followingserver
node below</install>
:<server> <item name="selenium" type="default" browser="Mozilla Firefox" browserName="firefox" host="selenium" port="4444" seleniumServerRequestsTimeout="30" sessionStrategy="shared"> <desiredCapabilities> <platform>ANY</platform> </desiredCapabilities> </item> </server>
You might need to change
host="selenium"
to the IP address of the selenium service, e.g. 172.20.0.6 (the troubleshooting check pings the service and shows the IP, see below)
Running Tests
After the functional integration test container is set up as described above, you can run the tests with this command:
docker-compose -f docker-compose.yml -f docker-compose.functional-tests.yml run --rm functional
Add the -t
parameter to enable troubleshooting checks before the test suite starts. Pass arguments to PHPUnit after --
, e.g.
docker-compose -f docker-compose.yml -f docker-compose.functional-tests.yml run --rm functional -- --filter MyTestCase
Licensing
dockerize-magento2 is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.