Docker development environment for staging Magento 2 on Alpine 3.6
The docker containers within this repository were build for development purposes only and should NOT be used in production. This product is licensed under the MIT LICENSE and comes with no warranty, use at your own risk.
Using shared volumes on MacOS with Docker is painfully slow. That is why we use docker-sync for sharing volumes with and between docker containers. While this solution has a slightly longer up time, it makes up for it when the containers are started. We also use docker-compose to build/run our docker containers because of it's simplicity. Sample docker-compose.yml and docker-sync.yml files can be found in the dist directory. Assuming that your Magento 2 installation lives in public_html of your project folder, you can start docker-sync and run the docker containers using the following sequence of commands:
docker-sync start
docker-compose up -d
Shutting them down is just as easy:
docker-compose down
docker-sync stop
docker-sync clean
All docker containers, except for php-cli-7.1, have the ability to tail their container's relevant logs if the VERBOSE=true
flag is passed as an environmental variable. Passing it to the container is optional since by default VERBOSE=false
. It is explicitly stated within the sample docker-compose.yml file for documentation purposes only. Please also note that you will only be able to see the verbose output of these containers if you run docker-compose without the detach flag, i.e. docker-compose up
.
Below are the possible environment variable that can be passed to the mysql docker container with some sample values. If non are passed, then only the root user will exist with the default password of mysql.
MYSQL_ROOT_PASSWORD=mysql
MYSQL_USER_NAME=magento_db_user
MYSQL_USER_PASSWORD=password123
MYSQL_DATABASE=magento
Building our docker containers is easy since we use docker-compose to do it for us. Simply run docker-compose -f build.yml build
to build the docker containers from source. Once built, and with permissions, feel free to push them to docker using docker push jetrails/magento-alpine:<tag>
.
If any issues come up or any feature are requested, please feel free to open up an issue through Github. For all other inquiries, feel free to email us at development@jetrails.com.