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 lsIf this fails and you get Permission denied message, run the following command
sudo usermod -aG docker $USER
sudo reboot- Go to Docker Preferences => File Sharing
- Add
/crmpath, 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 -dLoad 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 -VLoad 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 -VLoad 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.
- Logs can be found in
espocrm/data/logsfolder of your container - You can also do this
docker volume inspect crm_database-configurations- Use MountPoint path and append
/logsto that path to see all log files
- Your database configurations will be stored in
espocrm/data/config.phpfile of your container. - In case, you have forgotten your CRM's admin's login password or unable to login and outbound email is not set to send reset password, just delete
espocrm/data/config.phpfile and follow the installation steps of EspoCRM. - You can also change LOG_LEVEL in the
espocrm/data/config.phpfile of your container. By default, it will beWARNING. - Adding System Email Id to send reset password should be done in SMTP settings of Outbound Email in Administration panel.
- Adding shared email id's that will be used by users of EspoCRM should happen in Administration Panel's Group emails section of the application.
- Just in case if you get
SQL STATEerrors orbad server responsefollow this:docker container ls | grep Server | awk '{print $NF}'- Get the container name of crmServer and put it in placeholders below
docker exec <crmServer> php -f clear_cache.phpdocker exec <crmServer> php -f rebuild.php- Go to your browser and run
Ctrl + F5orCtrl + Shift + rto 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 phpunitdocker exec devCrmServer phpunit --bootstrap ./vendor/autoload.php tests/unitMake 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/integrationIt takes a while to running integration tests unlike unit tests.