
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Note: this is the "per-architecture" repository for the arm64v8 builds of https://hub.docker.com/_/espocrm -- for more information, see https://github.com/docker-library/official-images#architectures-other-than-amd64 and https://github.com/docker-library/faq#an-images-source-changed-in-git-now-what.
Maintained by:
https://github.com/espocrm/espocrm-docker
Where to get help:
https://github.com/espocrm/espocrm/issues, EspoCRM Documentation, EspoCRM Community
Dockerfile linkshttps://github.com/espocrm/espocrm-docker/blob/2add7383478baddeb5b444ca42de9d26c3257ff4/latest/apache/Dockerfile
https://github.com/espocrm/espocrm-docker/blob/2add7383478baddeb5b444ca42de9d26c3257ff4/latest/fpm/Dockerfile
https://github.com/espocrm/espocrm-docker/blob/2add7383478baddeb5b444ca42de9d26c3257ff4/latest/fpm-alpine/Dockerfile
Where to file issues:
https://github.com/espocrm/espocrm-docker/issues?q=is:issue+is:pr
Supported architectures: (https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/espocrm/, https://hub.docker.com/r/arm32v5/espocrm/, https://hub.docker.com/r/arm32v6/espocrm/, https://hub.docker.com/r/arm32v7/espocrm/, https://hub.docker.com/r/arm64v8/espocrm/, https://hub.docker.com/r/i386/espocrm/
Published image artifact details:
https://github.com/docker-library/repo-info/blob/master/repos/espocrm (https://github.com/docker-library/repo-info/commits/master/repos/espocrm)
(image metadata, transfer size, etc)
Image updates:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fespocrm
https://github.com/docker-library/official-images/blob/master/library/espocrm (https://github.com/docker-library/official-images/commits/master/library/espocrm)
Source of this description:
https://github.com/docker-library/docs/tree/master/espocrm (https://github.com/docker-library/docs/commits/master/espocrm)
EspoCRM is a highly customizable open source CRM software that allows users to see, enter and evaluate all your company relationships regardless of the type. People, companies, projects or opportunities - all in an easy and intuitive interface.
The basic pattern for starting an espocrm instance is:
console$ docker run --name some-espocrm -d arm64v8/espocrm
bashdocker network create espocrm-network && \ docker volume create espocrm-db && \ docker volume create espocrm-data && \ docker volume create espocrm-custom && \ docker volume create espocrm-custom-client && \ docker run \ --name espocrm-db \ --network espocrm-network \ --restart unless-stopped \ -e MARIADB_DATABASE=espocrm \ -e MARIADB_USER=espocrm \ -e MARIADB_PASSWORD=your_database_password \ -e MARIADB_ROOT_PASSWORD=your_root_password \ -v espocrm-db:/var/lib/mysql \ -d mariadb && \ docker run \ --name espocrm \ --network espocrm-network \ --restart unless-stopped \ -e ESPOCRM_DATABASE_PASSWORD=your_database_password \ -e ESPOCRM_ADMIN_USERNAME=admin \ -e ESPOCRM_ADMIN_PASSWORD=your_admin_password \ -v espocrm-data:/var/www/html/data \ -v espocrm-custom:/var/www/html/custom \ -v espocrm-custom-client:/var/www/html/client/custom \ -p 8080:80 \ -d arm64v8/espocrm && \ docker run \ --name espocrm-daemon \ --network espocrm-network \ --restart unless-stopped \ --volumes-from espocrm \ --entrypoint docker-daemon.sh \ -d arm64v8/espocrm
Then, access it via http://localhost:8080 or http://YOUR_IP_ADDRESS:8080 with credentials admin and your_admin_password.
To set a custom IP address or domain, pass the ESPOCRM_SITE_URL environment variable when running the container.
bashdocker run \ --name espocrm \ --network espocrm-network \ -p 8080:80 \ -e ESPOCRM_DATABASE_USER=espocrm \ -e ESPOCRM_DATABASE_PASSWORD=your_database_password \ -e ESPOCRM_ADMIN_USERNAME=admin \ -e ESPOCRM_ADMIN_PASSWORD=your_admin_password \ -e ESPOCRM_SITE_URL=http://192.168.0.100:8080 \ -d arm64v8/espocrm
Then, access it via http://192.168.0.100:8080 with credentials admin and your_admin_password.
Example compose.yaml for espocrm:
yamlservices: espocrm-db: image: mariadb:latest container_name: espocrm-db environment: MARIADB_ROOT_PASSWORD: your_root_password MARIADB_DATABASE: espocrm MARIADB_USER: espocrm MARIADB_PASSWORD: your_database_password volumes: - espocrm-db:/var/lib/mysql restart: unless-stopped healthcheck: test: [CMD, healthcheck.sh, --connect, --innodb_initialized] interval: 20s start_period: 10s timeout: 10s retries: 3 espocrm: image: espocrm:latest container_name: espocrm environment: ESPOCRM_DATABASE_HOST: espocrm-db ESPOCRM_DATABASE_USER: espocrm ESPOCRM_DATABASE_PASSWORD: your_database_password ESPOCRM_ADMIN_USERNAME: admin ESPOCRM_ADMIN_PASSWORD: your_admin_password ESPOCRM_SITE_URL: http://localhost:8080 volumes: - espocrm-data:/var/www/html/data - espocrm-custom:/var/www/html/custom - espocrm-custom-client:/var/www/html/client/custom restart: unless-stopped depends_on: espocrm-db: condition: service_healthy healthcheck: test: [CMD, bin/command, app-check] start_period: 20s interval: 60s timeout: 20s retries: 3 ports: - 8080:80 espocrm-daemon: image: espocrm:latest container_name: espocrm-daemon volumes_from: - espocrm restart: unless-stopped entrypoint: docker-daemon.sh depends_on: espocrm: condition: service_healthy espocrm-websocket: image: espocrm:latest container_name: espocrm-websocket environment: ESPOCRM_CONFIG_USE_WEB_SOCKET: 'true' ESPOCRM_CONFIG_WEB_SOCKET_URL: ws://localhost:8081 ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBSCRIBER_DSN: tcp://*:7777 ESPOCRM_CONFIG_WEB_SOCKET_ZERO_M_Q_SUBMISSION_DSN: tcp://espocrm-websocket:7777 volumes_from: - espocrm restart: unless-stopped entrypoint: docker-websocket.sh depends_on: espocrm: condition: service_healthy ports: - 8081:8080 volumes: espocrm-db: espocrm-data: espocrm-custom: espocrm-custom-client:
Run docker compose up, wait for it to initialize completely, and visit http://localhost:8080 or http://YOUR_IP_ADDRESS:8080 (as appropriate).
You can read the instructions for installing EspoCRM in conjunction with Traefik in the Docker Compose environment here.
You can read the instructions for installing EspoCRM in conjunction with Caddy in the Docker Compose environment here.
Keeping your EspoCRM installation updated ensures you have the latest features, security patches, and bug fixes. The upgrade process differs depending on whether you're using Docker Run or Docker Compose.
To upgrade EspoCRM when using Docker Run:
1. Pull the latest images:
bashdocker pull mariadb docker pull arm64v8/espocrm
2. Stop all running containers:
bashdocker stop espocrm espocrm-db espocrm-daemon
3. Remove the old containers:
bashdocker rm espocrm espocrm-db espocrm-daemon
4. Run the containers again with the same configuration as your original deployment (using the quick start or step by step commands from the Docker Run section).
To upgrade EspoCRM when using Docker Compose:
1. Navigate to your EspoCRM container directory.
2. Run the command:
bashdocker compose pull && docker compose up -d
Within a few minutes the container will be upgraded to the latest version.
To securely pass sensitive information, append _FILE to any supported environment variable. When this suffix is used, the variable's value is read from a file inside the container instead of being specified directly. This can be used with Docker secrets stored in /run/secrets/<secret_name> files. For example:
console$ docker run \ --name espocrm \ --network some-network \ -e ESPOCRM_DATABASE_PASSWORD_FILE=/run/secrets/espocrm_db_password \ -e ESPOCRM_ADMIN_PASSWORD_FILE=/run/secrets/espocrm_admin_password \ -d arm64v8/espocrm
These environment variables are used only for the initial installation. If you need to define configuration options at container startup, see Config Environments.
ESPOCRM_DATABASE_PLATFORM
Database platform. The possible values: Mysql or Postgresql. The default value is Mysql.
ESPOCRM_DATABASE_HOST
Database host name for EspoCRM. The default value is espocrm-db.
ESPOCRM_DATABASE_PORT
Database port for EspoCRM. The default value is empty.
ESPOCRM_DATABASE_NAME
Database name for EspoCRM. The default value is espocrm.
ESPOCRM_DATABASE_USER
Database user for EspoCRM. The default value is espocrm.
ESPOCRM_DATABASE_PASSWORD
Database password for EspoCRM. The default value is password.
ESPOCRM_ADMIN_USERNAME
User name for an administrator of EspoCRM. The default value is admin.
ESPOCRM_ADMIN_PASSWORD
User password for an administrator of EspoCRM. The default value is password.
ESPOCRM_SITE_URL
The URL of EspoCRM. This option is very important for normal operating of EspoCRM. Examples: http://192.168.0.100:8080, http://my-crm.local.
The list of possible values and their default values can be found in EspoCRM Administrator panel > Settings.
ESPOCRM_LANGUAGEESPOCRM_DATE_FORMATESPOCRM_TIME_FORMATESPOCRM_TIME_ZONEESPOCRM_WEEK_STARTESPOCRM_DEFAULT_CURRENCYESPOCRM_THOUSAND_SEPARATORESPOCRM_DECIMAL_MARKThese environment variables are used to define EspoCRM configuration parameters on every container startup. The parameters that can be changed are defined in data/config.php or data/config-internal.php.
Config environment variables should be converted from camel case. For example:
The exportDisabled config option should be converted to ESPOCRM_CONFIG_EXPORT_DISABLED.
There are additional options to change the logger:
ESPOCRM_CONFIG_LOGGER__LEVEL: "DEBUG"ESPOCRM_CONFIG_LOGGER__MAX_FILE_NUMBER: 30ESPOCRM_CONFIG_LOGGER__PATH: "data/logs/espo.log"String
yamlESPOCRM_CONFIG_WEB_SOCKET_URL: 'wss://my-espocrm.com:8080'
Integer
yamlESPOCRM_CONFIG_EMAIL_MESSAGE_MAX_SIZE: 10
Boolean
yamlESPOCRM_CONFIG_USE_WEB_SOCKET: 'true'
Null
yamlESPOCRM_CONFIG_CURRENCY_DECIMAL_PLACES: 'null'
The arm64v8/espocrm images come in many flavors, each designed for a specific use case.
arm64v8/espocrm:<version>This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.
Some of these tags may have names like trixie in them. These are the suite code names for releases of https://wiki.debian.org/DebianReleases and indicate which release the image is based on. If your image needs to install any additional packages beyond what comes with the image, you'll likely want to specify one of these explicitly to minimize breakage when there are new releases of Debian.
arm64v8/espocrm:<version>-alpineThis image is based on the popular [***] available in https://hub.docker.com/_/alpine. Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general.
This variant is useful when final image size being as small as possible is your primary concern. The main caveat to note is that it does use https://musl.libc.org instead of https://www.etalabs.net/compare_libcs.html, so software will often run into issues depending on the depth of their libc requirements/assumptions. See this Hacker News comment thread for more discussion of the issues that might arise and some pro/con comparisons of using Alpine-based images.
To minimize image size, it's uncommon for additional related tools (such as git or bash) to be included in Alpine-based images. Using this image as a base, add the things you need in your own Dockerfile (see the https://hub.docker.com/_/alpine/ for examples of how to install packages if you are unfamiliar).
View license information for the software contained in this image.
As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
Some additional license information which was able to be auto-detected might be found in https://github.com/docker-library/repo-info/tree/master/repos/espocrm.
As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务