After docker-compose up -d
you have to manually start ftp server, I have done it this way
admin@ip-10-0-0-188:~/docker-magento$ docker exec -it dockermagento_web_1 /bin/bash
root@141a6d1718bd:/var/www/htdocs# /usr/local/bin/ftpserver &
This repo creates a Docker image for Magento.
Version | Git branch | Tag name |
---|---|---|
1.9.2.3 | master | latest |
1.9.1.0 | 1.9.1.0 | 1.9.1.0 |
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 |
You can use docker run
to run this image directly.
docker run -p 80:80 alexcheng/magento
Then finish Magento installation using web UI. You need to have an existing MySQL server.
Magento is installed into /var/www/htdocs
folder.
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:
- env
Then use docker-compose up -d
to start MySQL and Magento server.
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-sampledata
Magento 1.9 sample data is compressed version from Vinai/compressed-magento-sample-data. Magento 1.6 - 1.8 uses the official sample data.
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://local.magento |
MAGENTO_ADMIN_FIRSTNAME | Magento admin firstname | Admin |
MAGENTO_ADMIN_LASTNAME | Magento admin lastname | MyStore |
MAGENTO_ADMIN_EMAIL | Magento admin email | [email protected] |
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-magento
If 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://local.magento) 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.
Important: If you do not use the default MAGENTO_URL
you must use a hostname that contains a dot within it (e.g foo.bar
), otherwise the Magento admin panel login won't work.