Mac Docker setup
Last updated
Last updated
If you plan to make changes to the theme make sure to , or into existing one.
Make sure you have a SSH key assigned to your GitHub account, and you current machine has the same key. Read .
Make sure to fork . Read .
Make sure you have git
, docker-compose
and mutagen
binaries installed. To test, execute following command in the bash terminal:
If git
was not found, please follow .
If docker-compose
was not found, please follow .
If mutagen
was not found, please follow .
Choose an installation directory. It can be anywhere on your computer. Folder /var/www/public
is not necessary, prefer ~/Projects/
for ease of use.
To make your life easier, make sure to create an aliases for docker-compose and mutagen commands. Follow to create permanent aliases. We recommend defining following:
Note:
Mutagen is necessary for Mac platform to improve performance. It is used to sync files between the host and docker container. There are some points you need to bear in mind while working with mutagen coming soon!
5. Make sure you have a valid Magento 2 COMPOSER_AUTH
set. This is an environment variable set on your host machine. To test if it is set, use:
If the output of this command is empty, or, if the output (JSON object) does not contain "repo.magento.com"
key, you need to set / update the environment variable.
Now, using the following template, set the environment variable:
6. Execute following command to add scandipwa.local
to your /etc/hosts
file and map it to the 127.0.0.1
:
Get the copy of magento-docker
- clone your fork, or clone the original repository. Do not try to download the release ZIP - it will contain outdated code.
If any other output has been returned, execute the following command to checkout the correct branch:
2. Generate and trust a self-signed SSL certificate.
Begin with generating a certificate. Use the following command for that:
3. Reload the Google Chrome. Sometimes, the Google Chrome caches the old-certificates. Make to completely exit chrome, before opening it back. Sometimes, the “invalid certificate” issues only disappears after the full host machine reload.
4. Pull all necessary container images
Note:
There are two ways to use the setup: with frontend
container and without it. The setup with frontend
container is called development. The alias running it is front
. The alias for production-like run is localtheme
.
Note:
If you have already ran ScandiPWA in any mode once, you can safely skip to step 3. In case, of course, you plan on development.
4. Start the infrastructure in production-like mode
5. Wait until the infrastructure starts
After the previous command is executed, the site won’t be available quickly, it takes 80-250s to start, you can see when the application is ready to receive the requests by watching app
logs, using this command:
If you can see following output, the application is ready!
Note:
if you are starting the project with the frontend container, the ability of application to receive the requests does not mark that it is ready to be used. Frontend container compiles the theme asynchronously, so you need to read logs of the frontend container to understand when this process finishes. Instructions to that are described above.
6. Start the development-setup (optional)
7. Wait until the development infrastructure starts
In development setup - the page will be available much faster rather than in production-like setup - right after the theme compilation in frontend
container. You can track the progress using following command:
If you can see following output, the frontend is ready!
Note:
the requests to /graphql
will still fail, you need to wait until the app
container starts. See instruction in step 2 to see how.
Note:
all application configurations, i.e. admin password, admin username, admin URL, application mode and more is located in .application
file.
To run any Magento-related command (composer
, bin/magento
) use inapp bash
command on your host machine. Do not attempt to run them on your host machine.
Open your favorite browser, i.e. Google Chrome
In production the Magento (app
container) is fully responsible for what you see in browser
In development the webpack-dev-server (frontend
container) is responsible for frontend, while /media
, /graphql
, /admin
URLs are still coming from Magento.
The module scandipwa/sample-data
includes following:
Small amount of products
2 Categories
3 CMS blocks
3 CMS Pages
1 Slider
1 Menu
Execute into the app
component:
2. Require ScandiPWA sample-data:
3. Run sample-data migration scripts:
4. Flush configuration caches updated by migration:
Stuck? Don’t know where to start? Checkout our development guide! It will guide you through the best-practices working with ScandiPWA! How to debug, configure the code-editor, code-style checker and create your first base-template! This, and much-much more in:
Follow this simple algorithm:
Those aliases are required to have all services available at all times. Otherwise, if just using docker-compose
only services defined in docker-composer.yml
will be available. Understand what services are available at all by reading .
Make sure you have a valid Magento account. You can or on Magento Marketplace site.
Upon logging to your Magento Marketplace account follow the to locate and generate credentials.
To set the environment variables follow . Make sure to make them persist (stay between reloads).
2. Add certificate to the list of trusted ones. Add this certificate <PATH TO PROJECT ROOT>/opt/cert/scandipwa-ca.pem
to Key Chain. See for more details.
container image
!= media image
. Read more about
Regardless of production or development setup go to
To access the Maildev, go to
To access the Kibana, go to
Refer to the . It most probably already has the solution to your problem.
If the issue still persists, , and feel free to ask questions in #pwa_tech
public channel.
Alternatively - however, the response time there will be a little-bit longer than in community Slack.