Docker image for Magento
This repo creates a Docker image for Magento.
Magento versions
| Version | Git branch | Tag name |
|---|---|---|
| 1.9.1.0 | master | latest |
| 1.8.1.0 | 1.8.1.0 | 1.8.1.0 |
| 1.7.0.2 | 1.7.0.2 | 1.7.0.2 |
| 1.6.2.0 | 1.6.2.0 | 1.6.2.0 |
How to use
Use as standalone container
You can use docker run to run this image directly.
docker run -p 80:80 alexcheng/magentoThen finish Magento installation using web UI. You need to have an existing MySQL server.
Magento is installed into /var/www/htdocs folder.
Use Docker Compose
Docker Compose is the recommended way to run this image with MySQL database.
A sample docker-compose.yml can be found in this repo.
web:
image: alexcheng/magento
ports:
- "80:80"
links:
- mysql
env_file:
- env
mysql:
image: mysql:5.6.23
env_file:
- envThen use docker-compose up -d to start MySQL and Magento server.
Magento sample data
Installation script for Magento sample data is also provided.
Please note: Sample data must be installed before Magento itself.
Use /usr/local/bin/install-sampledata to install sample data for Magento.
docker exec -it <container id> install-sampledataMagento 1.9 sample data is compressed version from Vinai/compressed-magento-sample-data. Magento 1.6 - 1.8 uses the official sample data.
Magento installation script
A Magento installation script is also provided as /usr/local/bin/install-magento. This script can install Magento without using web UI. This script requires certain environment variables to run:
| Environment variable | Description | Default value (used by Docker Compose - env file) |
|---|---|---|
| MYSQL_HOST | MySQL host | mysql |
| MYSQL_DATABASE | MySQL db name for Magento | magento |
| MYSQL_USER | MySQL username | magento |
| MYSQL_PASSWORD | MySQL password | magento |
| MAGENTO_LOCALE | Magento locale | en_GB |
| MAGENTO_TIMEZONE | Magento timezone | Pacific/Auckland |
| MAGENTO_DEFAULT_CURRENCY | Magento default currency | NZD |
| MAGENTO_URL | Magento base url | http://mymagentostore.com |
| MAGENTO_ADMIN_FIRSTNAME | Magento admin firstname | Admin |
| MAGENTO_ADMIN_LASTNAME | Magento admin lastname | MyStore |
| MAGENTO_ADMIN_EMAIL | Magento admin email | amdin@mymagentostore.com |
| MAGENTO_ADMIN_USERNAME | Magento admin username | admin |
| MAGENTO_ADMIN_PASSWORD | Magento admin password | magentorocks1 |
If you want to use install-magento script and this images is started as a standalone container using docker run, make sure these environment variables are passed in docker run with -e switch.
After Docker container started, use docker ps to find container id of image alexcheng/magento, then use docker exec to call install-magento script.
docker exec -it <container id> install-magentoIf Docker Compose is used, you can just modify env file in the same directory of docker-compose.yml file to update those environment variables.
After calling install-magento, Magento is installed and ready to use. Use provided admin username and password to log into Magento backend.
If you use default base url (http://mymagentostore.com) or other test url, you need to modify your host file to map the host name to docker container. For Boot2Docker, use boot2docker ip to find the IP address.