š¤ (PHP) EspoCRM with cron preconfigured, ready in one command
100K+
š¤ (PHP) EspoCRM with cron preconfigured, ready in one command
Built on shinsenter/phpfpm-apacheā (Apache, PHP-FPM, Composer). For settings shared by all images, see shinsenter/phpā .
New project: mount an empty folder. On first start the container downloads EspoCRM into it (latest release zip of espocrm/espocrmā ). Watch progress with docker logs -f <container>.
mkdir espocrm
docker run -p 80:80 -p 443:443 -p 443:443/udp \
-v ./espocrm:/var/www/html \
shinsenter/espocrm:latest
Existing project: mount your code the same way. Changes on the host show up in the container at once.
Compose:
services:
web:
image: shinsenter/espocrm:latest
ports: ["80:80", "443:443", "443:443/udp"]
volumes:
- ./espocrm:/var/www/html
The image has no database. Run one as a separate service and pass its address to the app through the app's own settings.
| Item | Value |
|---|---|
| Base image | shinsenter/phpfpm-apacheā |
| Web server | Apache |
| Document root | public |
| New project source | latest release zip of espocrm/espocrmā |
Defaults this image sets (you can override each with -e):
| Variable | Default |
|---|---|
ENABLE_CRONTAB | 1 |
CRONTAB_SETTINGS | * * * * * php -f "$(app-path)"/cron.php |
ESPOCRM_CONFIG_USE_WEB_SOCKET | 0 |
PHP_MAX_EXECUTION_TIME, PHP_MAX_INPUT_TIME | 180 |
PHP_MEMORY_LIMIT | 256M |
PHP_POST_MAX_SIZE, PHP_UPLOAD_MAX_FILESIZE | 50M |
| Variable | What it does | Default |
|---|---|---|
APP_PATH | Application directory inside the container. | /var/www/html |
DOCUMENT_ROOT | Folder inside APP_PATH that the web server serves. | public |
APP_USER, APP_GROUP, APP_UID, APP_GID | Run as another user and group. | www-data |
TZ | Container timezone, for example Asia/Tokyo. | UTC |
DEBUG | 1 prints verbose logs, including which hooks run. | not set |
ENABLE_CRONTAB, CRONTAB_SETTINGS | Turn on cron and define jobs, for example * * * * * php -f /var/www/html/cron.php. | not set |
PHP_* | Any php.ini setting, for example PHP_MEMORY_LIMIT=512M, PHP_UPLOAD_MAX_FILESIZE=100M. Run php-envvars in the container to list them. | image defaults |
The full list is in the shinsenter/phpā documentation.
The image ships a self-signed certificate for local tests:
/etc/ssl/site/server.crt/etc/ssl/site/server.keyFor production, replace both files with your own, by mounting them:
services:
web:
image: shinsenter/espocrm:latest
volumes:
- ./espocrm:/var/www/html
- ./my_domain.crt:/etc/ssl/site/server.crt
- ./my_domain.key:/etc/ssl/site/server.key
or by copying them in your own Dockerfile:
FROM shinsenter/espocrm:latest
COPY my_domain.crt /etc/ssl/site/server.crt
COPY my_domain.key /etc/ssl/site/server.key
FROM shinsenter/espocrm:latest
# Your own steps, for example:
ADD --chown=$APP_USER:$APP_GROUP ./espocrm/ /var/www/html/
Adding PHP extensions, hooks, autorun scripts and cron jobs are covered in shinsenter/phpā .
linux/386, linux/arm/v7, linux/ppc64le and linux/s390x are no longer built. Older tags keep them until they are rebuilt.docker pull shinsenter/espocrm:latest
docker tag shinsenter/espocrm:latest your-repo/espocrm:stable
docker push your-repo/espocrm:stable
Keeping these images rebuilt for every PHP release takes ongoing work. If they save you time, you can help keep them going:
Reporting a bug, sharing the project or giving it a star on GitHubā also helps.
From Vietnam š»š³ with love.
Content type
Image
Digest
sha256:04c23b5bcā¦
Size
101.9 MB
Last updated
about 11 hours ago
docker pull shinsenter/espocrmPulls:
2,382
Oct 26 to Nov 1