Dolibarr 是一款开源的 ERP 与 CRM 集成套件,可用于管理组织活动,包括联系人、报价单、发票、订单、库存、日程、人力资源、费用报表、会计、文档管理、生产制造等功能。
更多信息
Docker Hub 上的可用版本/标签见:<[***]>
注:过旧的 Dolibarr 版本可能未在 Docker Hub 更新,可从 Dolibarr 官网下载标准 zip 包获取。
Linux x86-64(amd64)和 ARMv8 64 位(arm64v8)。
本镜像基于 *** PHP 仓库 和 *** Dolibarr 仓库 构建,构建工具见 Dolibarr docker build 仓库。
镜像不含数据库,需关联数据库容器。推荐使用 Docker Compose 配合 MariaDB(也可使用 MySQL)部署,步骤如下:
为确保重启或升级后数据不丢失,需先在主机创建以下目录,分别存储数据库数据、Dolibarr 文档文件和外部模块:
bashmkdir /home/dolibarr_mariadb /home/dolibarr_documents /home/dolibarr_custom
创建配置文件 docker-compose.yml,内容如下:
yaml# 编辑后执行 # docker-compose up -d # docker-compose logs services: mariadb: image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root} # 数据库 root 密码 MYSQL_DATABASE: ${MYSQL_DATABASE:-dolidb} # 数据库名 MYSQL_USER: ${MYSQL_USER:-dolidbuser} # 数据库用户 MYSQL_PASSWORD: ${MYSQL_PASSWORD:-dolidbpass} # 数据库用户密码 volumes: - /home/dolibarr_mariadb:/var/lib/mysql # 挂载数据库持久化目录 web: # 选择镜像版本: # dolibarr/dolibarr:latest(最新稳定版) # dolibarr/dolibarr:develop(开发版) # dolibarr/dolibarr:x.y.z(指定版本) image: dolibarr/dolibarr:latest environment: DOLI_INIT_DEMO: ${DOLI_INIT_DEMO:-0} # 是否加载演示数据(1=是) DOLI_DB_HOST: ${DOLI_DB_HOST:-mariadb} # 数据库主机名(关联 mariadb 服务) DOLI_DB_NAME: ${DOLI_DB_NAME:-dolidb} # 数据库名(需与 mariadb 配置一致) DOLI_DB_USER: ${DOLI_DB_USER:-dolidbuser} # 数据库用户(需与 mariadb 配置一致) DOLI_DB_PASSWORD: ${DOLI_DB_PASSWORD:-dolidbpass} # 数据库密码(需与 mariadb 配置一致) DOLI_URL_ROOT: "${DOLI_URL_ROOT:-[***]}" # 访问 URL DOLI_ADMIN_LOGIN: "${DOLI_ADMIN_LOGIN:-admin}" # 管理员账号 DOLI_ADMIN_PASSWORD: "${DOLI_ADMIN_PASSWORD:-admin}" # 管理员密码 DOLI_CRON: ${DOLI_CRON:-0} # 是否启用定时任务(1=是) DOLI_CRON_KEY: ${DOLI_CRON_KEY:-mycronsecurekey} # 定时任务安全密钥 DOLI_COMPANY_NAME: ${DOLI_COMPANY_NAME:-MyBigCompany} # 公司名称 WWW_USER_ID: ${WWW_USER_ID:-1000} # www-data 用户 ID(开发时可设为主机用户 ID) WWW_GROUP_ID: ${WWW_GROUP_ID:-1000} # www-data 组 ID ports: - "80:80" # 端口映射(主机端口:容器端口,若 80 被占用可改为主机空闲端口) links: - mariadb # 关联 mariadb 服务 volumes: - /home/dolibarr_documents:/var/www/documents # 挂载文档持久化目录 - /home/dolibarr_custom:/var/www/html/custom # 挂载外部模块目录
执行以下命令启动容器(-d 后台运行):
bashsudo docker-compose up -d
查看服务状态和日志:
bashsudo docker-compose ps # 查看容器状态 sudo docker-compose logs # 查看日志
日志显示 "You can connect to your Dolibarr web application..." 时,访问 [***] [***] 为自定义端口),使用默认管理员账号 admin/admin 登录。
更多场景的 docker-compose 配置示例见 examples 目录:
警告:仅持久化目录(docker-compose.yml 中 volumes 配置的目录)中的数据在容器升级后不会丢失。
需删除容器内 /var/www/documents 目录下的 install.lock 文件,可通过以下任一方式:
bashsudo docker exec [web容器名] bash -c "rm -f /var/www/documents/install.lock"
bashsudo docker exec -it [web容器名] bash rm -f /var/www/documents/install.lock; exit
bashrm -f /home/dolibarr_documents/install.lock
bashsudo docker-compose pull # 拉取最新镜像 sudo docker-compose up -d # 重启容器 sudo docker-compose logs # 查看日志确认启动成功
注意:确保 DOLI_INSTALL_AUTO=1(默认值),容器会自动迁移数据库;也可通过访问 /install 页面手动升级。
可通过以下环境变量自定义配置,表格列出常用变量及说明:
| 变量名 | 默认值 | 描述 |
|---|---|---|
| DOLI_INSTALL_AUTO | 1 | 是否自动安装/迁移数据库(1=是) |
| DOLI_INIT_DEMO | 0 | 是否加载演示数据(1=是) |
| DOLI_PROD | 1 | 是否启用生产模式(1=是) |
| DOLI_DB_TYPE | mysqli | 数据库类型(mysqli 或 pgsql) |
| DOLI_DB_HOST | mariadb | 数据库主机名 |
| DOLI_DB_NAME | dolidb | 数据库名 |
| DOLI_DB_USER | dolidbuser | 数据库用户名 |
| DOLI_DB_PASSWORD | dolidbpass | 数据库密码 |
| DOLI_URL_ROOT | [***] | 应用访问根 URL |
| DOLI_ADMIN_LOGIN | admin | 管理员账号 |
| DOLI_ADMIN_PASSWORD | admin | 管理员密码 |
| DOLI_AUTH | dolibarr | 用户认证方式(dolibarr、ldap 或 ldap,dolibarr) |
| DOLI_CRON | 0 | 是否启用定时任务(1=是) |
| DOLI_CRON_KEY | - | 定时任务安全密钥 |
| WWW_USER_ID | - | www-data 用户 ID(留空则不修改,开发时可设为主机用户 ID) |
| PHP_INI_MEMORY_LIMIT | 256M | PHP 内存限制 |
部分变量支持通过 Docker Secrets 管理,变量名后加 _FILE 后缀,值为密钥文件路径,例如:
DOLI_DB_PASSWORD → DOLI_DB_PASSWORD_FILE=/run/secrets/db_passwordDOLI_INSTANCE_UNIQUE_ID、DOLI_DB_USER、DOLI_DB_PASSWORD、DOLI_ADMIN_LOGIN、DOLI_ADMIN_PASSWORD、DOLI_CRON_KEY、DOLI_CRON_USER。可通过挂载卷执行自定义脚本(支持 .sh、.sql、.php):
/var/www/scripts/docker-init.d/var/www/scripts/before-starting.d示例配置(docker-compose.yml 中添加):
yamlvolumes: - ./custom-scripts:/var/www/scripts/docker-init.d # 部署脚本 - ./pre-start-scripts:/var/www/scripts/before-starting.d # 启动前脚本
若执行 apache2ctl configtest 提示 "Could not reliably determine the server's fully qualified domain name",创建文件 servername.conf(内容 ServerName dolibarr.example.com),挂载到容器 /etc/apache2/conf-enabled/servername.conf(只读挂载 :ro)。
若 Dolibarr 部署在代理后,需配置 Apache 模块 mod_remoteip 获取真实客户端 IP:
remoteip.load(内容 LoadModule remoteip_module /usr/lib/apache2/modules/mod_remoteip.so),挂载到 /etc/apache2/mods-enabled/remoteip.load:roremoteip.conf(示例内容 RemoteIPHeader X-Forwarded-For),挂载到 /etc/apache2/mods-enabled/remoteip.conf:ro设置 DOLI_DB_TYPE=pgsql 可使用 PostgreSQL 数据库,首次启动需手动安装:
install.lock(例如 docker-compose exec [web容器名] touch /var/www/html/documents/install.lock)升级时:删除 install.lock → 访问 /install 升级数据库 → 重新创建 install.lock。
docker-compose 时出现错误 "urllib3.exceptions.URLSchemeUnknown: Not supported URL scheme http+docker",尝试调整 requests 版本:
bashpip install requests==2.31.0
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429