
upshift/dolibarr本镜像为 Dolibarr ERP 提供容器化部署方案。Dolibarr 是一款开源企业资源规划(ERP)和客户关系管理(CRM)软件,适用于中小型企业管理业务流程。本镜像包含完整的数据库配置支持、生产模式、HTTPS 强制(SSL 需由反向代理提供)、自动升级处理等功能,简化 Dolibarr 的部署和运维流程。
本镜像不包含数据库,需配合现有数据库或数据库容器使用。
启动容器命令:
consoledocker run -d -p 8080:80 --link my-db:db upshift/dolibarr
访问方式:通过 http://localhost:8080 访问 Dolibarr,默认管理员账户 admin,密码 dolibarr。
Dolibarr 的应用数据和文档存储在以下路径,需通过卷挂载确保持久化:
/var/www/html:Dolibarr 核心安装目录(含配置、模块等)/var/www/documents:文档存储目录Dolibarr 卷配置:
consoledocker run -d \ -v dolibarr_html:/var/www/html \ -v dolibarr_docs:/var/www/documents \ upshift/dolibarr
数据库卷配置(以 MariaDB 为例):
consoledocker run -d \ -v dolibarr_db:/var/lib/mysql \ mariadb
可额外挂载以下路径实现细粒度控制:
/var/www/html/custom:自定义模块目录/var/www/html/conf:配置文件目录/var/www/html/theme/<YOUR_CUSTOM_THEME>:自定义主题目录通过环境变量可预配置 Dolibarr 安装参数,无需手动填写安装向导。所有参数参考 conf.php.example 和 install.forced.sample.php。
| 参数名 | 默认值 | 说明 | 示例 |
|---|---|---|---|
DOLI_DB_TYPE | mysqli | 数据库驱动类型,可选 mysqli(MySQL/MariaDB)或 pgsql(PostgreSQL) | DOLI_DB_TYPE=pgsql |
DOLI_DB_HOST | localhost | 数据库主机地址或域名 | DOLI_DB_HOST=mysql.myserver.com |
DOLI_DB_PORT | 3306 | 数据库端口,MySQL 默认 3306,PostgreSQL 默认 5432 | DOLI_DB_PORT=5432 |
DOLI_DB_NAME | (空) | 数据库名称 | DOLI_DB_NAME=dolibarr_prod |
DOLI_DB_USER | (空) | 数据库访问用户 | DOLI_DB_USER=dolibarr_user |
DOLI_DB_PASSWORD | (空) | 数据库用户密码 | DOLI_DB_PASSWORD=SecurePass123! |
DOLI_DB_PREFIX | llx_ | 数据库表前缀 | DOLI_DB_PREFIX=doli_ |
DOLI_DB_CHARACTER_SET | utf8 | 数据库字符集,取决于驱动类型 | DOLI_DB_CHARACTER_SET=utf8mb4 |
DOLI_DB_COLLATION | utf8_unicode_ci | 数据库排序规则,取决于驱动类型 | DOLI_DB_COLLATION=utf8mb4_unicode_ci |
DOLI_DB_ROOT_LOGIN | (空) | 数据库 root 用户(用于自动创建数据库和用户) | DOLI_DB_ROOT_LOGIN=root |
DOLI_DB_ROOT_PASSWORD | (空) | 数据库 root 用户密码 | DOLI_DB_ROOT_PASSWORD=RootPass456! |
| 参数名 | 默认值 | 说明 | 示例 |
|---|---|---|---|
DOLI_ADMIN_LOGIN | admin | 初始管理员登录名 | DOLI_ADMIN_LOGIN=superadmin |
DOLI_ADMIN_PASSWORD | dolibarr | 初始管理员密码 | DOLI_ADMIN_PASSWORD=AdminPass789! |
| 参数名 | 默认值 | 说明 | 示例 |
|---|---|---|---|
DOLI_URL_ROOT | http://localhost | 应用根 URL(不含末尾 /),需指向 htdocs 目录 | DOLI_URL_ROOT=[***] |
DOLI_PROD | 0 | 生产模式开关:0(开发模式,显示错误),1(生产模式,隐藏错误) | DOLI_PROD=1 |
DOLI_HTTPS | 0 | HTTPS 强制模式:0(关闭)、1(基于 SCRIPT_URI 重定向)、2(基于 SERVER["HTTPS"] 重定向)、'[***](指定域名重定向) | DOLI_HTTPS=2 |
DOLI_NO_CSRF_CHECK | 0 | CSRF 保护开关:0(启用),1(禁用,适用于代理 URL 重写场景) | DOLI_NO_CSRF_CHECK=1 |
PHP_INI_* | (空) | PHP 配置参数,格式 PHP_INI_<配置项>=<值> | PHP_INI_upload_max_filesize=50M |
| 参数名 | 默认值 | 说明 | 示例 |
|---|---|---|---|
DOLI_AUTH | dolibarr | 认证方式,取值为 htdocs/core/login 目录下文件名中 function_ 和 .php 之间的部分(除 forceuser),可逗号分隔多个方式(按顺序检查) | DOLI_AUTH=ldap,dolibarr |
DOLI_AUTH=ldap 且 DOLI_MODULES=modLdap)| 参数名 | 默认值 | 说明 | 示例 |
|---|---|---|---|
DOLI_LDAP_HOST | 127.0.2.1 | LDAP 服务器地址,可逗号分隔多个(支持 ldaps:// 前缀) | DOLI_LDAP_HOST=ldaps://ldap.company.com:636,ldap://backup.ldap.com:389 |
DOLI_LDAP_PORT | 389 | LDAP 端口 | DOLI_LDAP_PORT=636 |
DOLI_LDAP_VERSION | 3 | LDAP 协议版本 | DOLI_LDAP_VERSION=2 |
DOLI_LDAP_SERVERTYPE | openldap | LDAP 服务器类型:openldap、activedirectory 或 egroupware | DOLI_LDAP_SERVERTYPE=activedirectory |
DOLI_LDAP_DN | (空) | LDAP 基准 DN | DOLI_LDAP_DN=ou=Employees,dc=company,dc=com |
DOLI_LDAP_LOGIN_ATTRIBUTE | uid | 登录属性(如 Active Directory 用 samaccountname) | DOLI_LDAP_LOGIN_ATTRIBUTE=samaccountname |
DOLI_LDAP_FILTER | (空) | LDAP 过滤规则,定义后忽略 DOLI_LDAP_DN 和 DOLI_LDAP_LOGIN_ATTRIBUTE | DOLI_LDAP_FILTER=(&(uid=%1%)(memberOf=cn=ERP_Users,ou=Groups,dc=company,dc=com)) |
DOLI_LDAP_ADMIN_LOGIN | (空) | LDAP 管理员 DN(***绑定禁用时必填) | DOLI_LDAP_ADMIN_LOGIN=cn=admin,dc=company,dc=com |
DOLI_LDAP_ADMIN_PASS | (空) | LDAP 管理员密码(***绑定禁用时必填) | DOLI_LDAP_ADMIN_PASS=LDAPPass789! |
DOLI_LDAP_DEBUG | false | LDAP 调试开关 | DOLI_LDAP_DEBUG=true |
以下示例使用 MariaDB 数据库,通过命名卷持久化数据,适用于开发或测试环境(无 SSL,建议配合反向代理使用)。
创建 docker-compose.yml 文件:
ymlversion: '3' volumes: dolibarr_html: # 存储 Dolibarr 核心数据 dolibarr_docs: # 存储 Dolibarr 文档 dolibarr_db: # 存储 MariaDB 数据 services: mariadb: image: mariadb:latest restart: always command: --character_set_client=utf8 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci volumes: - dolibarr_db:/var/lib/mysql environment: - "MYSQL_DATABASE=dolibarr" # 数据库名 - "MYSQL_USER=dolibarr" # 数据库用户 - "MYSQL_PASSWORD=dolibarr" # 数据库密码 - "MYSQL_RANDOM_ROOT_PASSWORD=yes" # 自动生成 root 密码 dolibarr: image: upshift/dolibarr:latest restart: always depends_on: - mariadb ports: - "8080:80" # 主机 8080 端口映射到容器 80 端口 environment: - "DOLI_DB_HOST=mariadb" # 数据库主机(服务名) - "DOLI_DB_NAME=dolibarr" # 数据库名(与 MariaDB 一致) - "DOLI_DB_USER=dolibarr" # 数据库用户(与 MariaDB 一致) - "DOLI_DB_PASSWORD=dolibarr" # 数据库密码(与 MariaDB 一致) - "DOLI_ADMIN_PASSWORD=SecureAdmin123!" # 自定义管理员密码 - "DOLI_PROD=1" # 启用生产模式 volumes: - dolibarr_html:/var/www/html - dolibarr_docs:/var/www/documents
启动服务:
consoledocker-compose up -d
访问安装向导:http://localhost:8080/install
http://<主机IP>:8080/install 访问安装向导mariadb)作为主机,输入环境变量中配置的数据库名、用户和密码http://<主机IP>:8080/install/step2.php 使用自动生成的配置console# 拉取新版本镜像 docker pull upshift/dolibarr # 停止并删除旧容器(数据保存在卷中) docker stop <容器ID> && docker rm <容器ID> # 用原参数启动新容器 docker run <原启动参数> -d upshift/dolibarr
console# 拉取新版本镜像 docker-compose pull # 重启服务(自动使用新镜像) docker-compose up -d
注意:升级时建议逐步更新(如 5.0 → 6.0 → 7.0),不要跳过主要版本。
生产环境需通过反向代理(如 Nginx、Traefik)实现 HTTPS 加密。推荐方案:
DOLI_HTTPS=1 或 2 强制 HTTPS 重定向
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务