EspoCRM hosted on Docker Containers with development mode and production mode
Dockerized EspoCRM with ability to run unit-test during development and use build of EspoCRM in production.
Explanation of require path configurations are given here
Making sure docker doesn’t require superuser permission to run commands.
docker container ls
If this fails and you get Permission denied message, run the following command
sudo usermod -aG docker $USER
sudo reboot
/crm
path, otherwise docker volume mount will fail.docker build -t crm-webapp:1.0.0 --build-arg VERSION=5.4.5 -f webapp/Dockerfile /crm
docker-compose -f prod.docker-compose.yml up -d
Load http://localhost and follow the installation steps of EspoCRM.
The Host Name of MySQL is mysqldb:3306
.
Note: -v option is for EspoCRM’s Version and -V is for verbose mode
sudo mkdir /crm
sudo chown -R $USER:$USER /crm
git clone git://github.com/theBuzzyCoder/dockerised-espo.git /crm
./installer -v 5.4.5 -V
Load http://localhost:8088 and follow the installation steps of EspoCRM.
The Host Name of MySQL is mysqldb:3306
.
sudo mkdir /crm
sudo chown -R $USER:$USER /crm
git clone git://github.com/theBuzzyCoder/dockerised-espo.git /crm
./macOs-installer -v 5.4.5 -V
Load http://localhost:8088 and follow the installation steps of EspoCRM.
The Host Name of MySQL is mysqldb:3306
.
EspoCRM allows build your own custom extensions to suit your needs.
Here’s how you can do that in this setup.
espocrm/data/logs
folder of your containerdocker volume inspect crm_database-configurations
/logs
to that path to see all log filesespocrm/data/config.php
file of your container.espocrm/data/config.php
file and follow the installation steps of EspoCRM.espocrm/data/config.php
file of your container. By default, it will be WARNING
.SQL STATE
errors or bad server response
follow this:
docker container ls | grep Server | awk '{print $NF}'
docker exec <crmServer> php -f clear_cache.php
docker exec <crmServer> php -f rebuild.php
Ctrl + F5
or Ctrl + Shift + r
to force reload all the .js and .css files.You can run tests only on development mode. So, your docker-compose file should be dev.docker-compose.yml while bringing containers up.
docker exec devCrmServer apk add wget
docker exec devCrmServer wget -O phpunit https://phar.phpunit.de/phpunit-7.phar
docker exec devCrmServer chmod +x phpunit
docker exec devCrmServer phpunit --bootstrap ./vendor/autoload.php tests/unit
Make sure you update the version in config.php file to your Espo version. By default it will be @@version
.
For example, if espo crm version is 5.4.5 then in config.php make sure it is 5.4.5.
Also you have to generate build before running integration tests. The build will be present in /crm/espocrm/build/EspoCRM-5.4.5
Generating build:
docker run --rm -v /crm/espocrm:/app node:8.12.0-alpine sh -c "cd /app; npm install; npm install -g grunt-cli; grunt"
Running Test:
docker exec devCrmServer cp data/config.php tests/integration/config.php
docker exec devCrmServer phpunit --bootstrap ./vendor/autoload.php tests/integration
It takes a while to running integration tests unlike unit tests.