ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Docker 部署 Dolibarr:轻松搭建开源 ERP/CRM 平台

Docker 部署 Dolibarr:轻松搭建开源 ERP/CRM 平台 本文基于 dolibarr/dolibarr:22.0.5以22.0.5版本实测测试平台Ubuntu 24.04Linux。小公司开报价单还在 Word 里改抬头客户电话散在销售微信与旧 Excel仓库盘点一张纸财务月底再手工对一遍发票号。换人交接时说不清「哪份才是最终版」催款也要对着聊天记录翻。业务体量不大却已经需要联系人、报价、订单、库存和简单财务在同一处。把整套系统塞进公有云 SaaS客户资料与发票附件会出域自己从源码装 PHP、配 Apache、再手搓 MySQL对只要先有一个内网网址的人成本太高。机房或家里已经有一台跑 Docker 的 Ubuntu缺的是镜像能拉下来、数据库和应用一起起来、浏览器打开就能建公司与客户。Dolibarr官网、GitHub · dolibarr/dolibarr、镜像页是开源 ERP / CRM客户与供应商、报价与发票、库存、费用报销、休假等能力按模块开关。官方镜像dolibarr/dolibarr只带 WebPHP Apache不内置数据库需要单独准备 MariaDB 或 MySQL。本文使用dolibarr/dolibarr:22.0.5版本实测Compose 拉起 Web 与 MariaDB 后安装程序会自动创建数据库和管理员附件与外部模块写在本机目录。跑通之后可以在浏览器里完善公司资料、按需打开模块再建客户、开报价或先走费用报销 / 休假这类人事流程——业务数据都在自己的盘上。一、环境要求项目建议系统Linux建议Ubuntu 24.04macOS 目录用~/docker/dolibarrDockerEngine Compose V2架构linux/amd64、linux/arm6422.0.5均有内存建议 ≥2 GB空闲Web MariaDB磁盘应用 DISK1.33 GB/ CONTENT319 MBMariaDB DISK455 MB/ CONTENT108 MB业务数据另计端口宿主机8088→ 容器80工作目录/www/wwwroot/dolibarrdocker--versiondockercompose versionLinux 未装 Docker 可使用轩辕镜像一键安装脚本bash(wget-qO- https://get.xuanyuan.cloud/docker.sh)备用地址bash(wget-qO- https://get.xuanyuan.me/docker.sh)更多见轩辕镜像使用手册。二、拉取镜像2.1 标签怎么选标签说明本文是否采用22.0.522.x 较新的具体稳定版amd64 / arm64采用22.0.5-php8.2与22.0.5同源标明 PHP 8.2可等价选用22.0.4及更早旧补丁仅回退时用develop开发线勿写入生产命令latest浮动标签勿写入文中命令完整列表见标签页。升级应用时只修改 Compose 里的 Dolibarr 镜像标签。保留mariadb、documents、custom三个目录。install.lock的处理见下文 FAQ 「升级大版本怎么做」。2.2 用轩辕镜像加速拉取dockerpull docker.xuanyuan.run/dolibarr/dolibarr:22.0.5dockerpull docker.xuanyuan.run/library/mariadb:11.4.13Ubuntu 24.04 实测22.0.5: Pulling from dolibarr/dolibarr ... Digest: sha256:a9f033f7a37a8270d6190c477cb0510fbe3e7da77384715e7773856894cd13ec Status: Downloaded newer image for docker.xuanyuan.run/dolibarr/dolibarr:22.0.5 docker.xuanyuan.run/dolibarr/dolibarr:22.0.511.4.13: Pulling from library/mariadb ... Digest: sha256:70cc072b29b4a89ae07abb2d4da2c64678a7f2dfe092751bb51c87d67dc1338b Status: Downloaded newer image for docker.xuanyuan.run/library/mariadb:11.4.13 docker.xuanyuan.run/library/mariadb:11.4.13IMAGE DISK USAGE CONTENT SIZE docker.xuanyuan.run/dolibarr/dolibarr:22.0.5 1.33GB 319MB docker.xuanyuan.run/library/mariadb:11.4.13 455MB 108MB三、Docker Compose 部署主路径按这个顺序做建立目录。写入compose.yaml。执行docker compose up -d。等待自动安装完成。在浏览器登录。开始之前确认数据目录使用/www/wwwroot/dolibarr。宿主机端口使用8088容器端口是80。本机80上若已有面板或 Nginx使用 8088 可以避开冲突。应用镜像使用dolibarr/dolibarr:22.0.5。数据库镜像使用 MariaDB11.4.13。3.1 准备目录在 Linux 上使用/www/wwwroot/dolibarr。在 macOS 上把同一路径换成~/docker/dolibarr。chown的数字改成id -u和id -g的结果。sudomkdir-p/www/wwwroot/dolibarr/{mariadb,documents,custom}sudochown-R1000:1000 /www/wwwroot/dolibarr/documents /www/wwwroot/dolibarr/customcd/www/wwwroot/dolibarr宿主机目录容器路径用途./mariadb/var/lib/mysql数据库./documents/var/www/documents附件与install.lock./custom/var/www/html/custom外部模块3.2 写入 compose.yaml写入文件之前把DOLI_URL_ROOT改成你的访问地址地址里要带端口。下文局域网示例是http://192.168.1.35:8088。cd/www/wwwroot/dolibarrcatcompose.yamlEOF services: mariadb: image: docker.xuanyuan.run/library/mariadb:11.4.13 container_name: dolibarr-mariadb restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: change-me-root-pass MYSQL_DATABASE: dolidb MYSQL_USER: dolidbuser MYSQL_PASSWORD: change-me-db-pass volumes: - ./mariadb:/var/lib/mysql healthcheck: test: [CMD, healthcheck.sh, --connect, --innodb_initialized] interval: 10s timeout: 5s retries: 10 web: image: docker.xuanyuan.run/dolibarr/dolibarr:22.0.5 container_name: dolibarr-web restart: unless-stopped depends_on: mariadb: condition: service_healthy environment: DOLI_INSTALL_AUTO: 1 DOLI_INIT_DEMO: 0 DOLI_PROD: 1 DOLI_DB_HOST: mariadb DOLI_DB_NAME: dolidb DOLI_DB_USER: dolidbuser DOLI_DB_PASSWORD: change-me-db-pass DOLI_URL_ROOT: http://192.168.1.35:8088 DOLI_ADMIN_LOGIN: admin DOLI_ADMIN_PASSWORD: change-me-admin-pass DOLI_COMPANY_NAME: MyCompany DOLI_COMPANY_COUNTRYCODE: CN DOLI_CRON: 0 WWW_USER_ID: 1000 WWW_GROUP_ID: 1000 PHP_INI_DATE_TIMEZONE: Asia/Shanghai PHP_INI_MEMORY_LIMIT: 256M ports: - 8088:80 volumes: - ./documents:/var/www/documents - ./custom:/var/www/html/custom EOF要点DOLI_DB_PASSWORD必须与MYSQL_PASSWORD相同。首次安装时安装程序使用DOLI_ADMIN_LOGIN和DOLI_ADMIN_PASSWORD创建管理员。上线之前把管理员密码改成强密码。登录之后再在页面里修改一次管理员密码。正式环境把DOLI_INIT_DEMO保持为0。需要演示数据时才把DOLI_INIT_DEMO设为1。安装程序会灌入演示数据。需要定时任务时把DOLI_CRON设为1。启用定时任务时写入DOLI_CRON_KEY。3.3 启动并查看状态在/www/wwwroot/dolibarr按顺序执行下面的命令。cd/www/wwwroot/dolibarrdockercompose up-ddockercomposepsdockercompose logs-fweb[] up 3/3 ✔ Network dolibarr_default Created ✔ Container dolibarr-mariadb Healthy ✔ Container dolibarr-web StartedNAME IMAGE STATUS PORTS dolibarr-mariadb docker.xuanyuan.run/library/mariadb:11.4.13 Up … (healthy) 3306/tcp dolibarr-web docker.xuanyuan.run/dolibarr/dolibarr:22.0.5 Up … 0.0.0.0:8088-80/tcpMariaDB 约46 s变为healthy之后Web 容器才会启动。logs -f web摘录中间建表日志已省略docker-run.sh started Current Version of files is : 22.0.5 DOLI_INSTALL_AUTO is on, so we check to initialize or upgrade mariadb database No table found, we launch initializeDatabase Importing table from llx_accounting_account.sql ... ... Create SuperAdmin account ... Activating module User... OK Configuring for country : 9:CN:China Database Version is : 22.0.5 Files Version are : 22.0.5 Schema update is not required ... Enjoy ! *** You can connect to the running Dolibarr web application with: http://127.0.0.1:port Apache/2.4.68 (Debian) configured -- resuming normal operations首次启动会导入大量llx_*.sql可能持续数分钟。日志出现就绪句之后再打开浏览器。日志出现You can connect to the running Dolibarr web application并且 Apache 已就绪之后按CtrlC停止跟随日志。mkdir … conf: File exists和AH00558可以忽略。说明见下文 FAQ。在宿主机检查首页响应curl-sIhttp://127.0.0.1:8088/|head-n5HTTP/1.1 200 OK Date: Thu, 24 Sep 2026 07:15:53 GMT Server: Apache Set-Cookie: DOLSESSID_……; path/; HttpOnly; SameSiteLax Expires: Thu, 19 Nov 1981 08:52:00 GMT四、浏览器初始化打开页面前把示例地址中的 IP 换成你的 IP 或域名。管理员用户名是admin。密码使用 Compose 中的DOLI_ADMIN_PASSWORD。本文示例值是change-me-admin-pass。在第 9 步修改管理员密码之前示例密码仍然可以登录。打开http://192.168.1.35:8088。使用用户名admin登录。自动安装已经启用用户模块。其他模块启用之前侧栏不会出现对应菜单。打开「设置」。页面会提示完善「公司 / 组织」并启用模块。打开「公司 / 组织」。核对公司名和国家。本文实测国家为China / CN。主币种仍是欧元时把主币种改为人民币并保存。打开「模块 / 应用」。按需要启用模块例如「第三方」客户、「商业提案 / 发票」、「产品与库存」或人事中的「费用报销」和「休假」。打开「主题 → 语言和呈现」。浏览器已经是中文时语言保持「自动检测」。修改管理员密码。核对浏览器地址栏与DOLI_URL_ROOT是否一致。地址不一致时生成的链接会错。五、功能演示「我的看板」汇总逾期、报销、休假等卡片。新装后的账号多为 SuperAdmin业务计数为 0。启用人事相关模块之后顶栏会出现「人事管理」。新装时费用报销和休假列表为空。这是正常现象。可以从「」新建一张单据确认页面能打开。销售和库存可以按下面的顺序做启用「第三方」等模块。新建客户或供应商。创建报价或订单。开发票。「产品与库存」模块启用之后再维护产品和出入库。合同和 PDF 等附件写在documents卷中。备份时把documents、mariadb、custom一起打包。更细的模块说明见 Dolibarr Wiki。六、备选docker run这一节只用于临时试玩。第三节的 Compose 已经在运行时先在/www/wwwroot/dolibarr执行docker compose down。不先停止时容器名会冲突。先启动 MariaDB。数据库就绪之后约数十秒再启动 Web 容器。sudomkdir-p/www/wwwroot/dolibarr/{mariadb,documents,custom}sudochown-R1000:1000 /www/wwwroot/dolibarr/documents /www/wwwroot/dolibarr/customdockernetwork create dolibarr-netdockerrun-d--namedolibarr-mariadb--networkdolibarr-net--restartunless-stopped-eMYSQL_ROOT_PASSWORDchange-me-root-pass-eMYSQL_DATABASEdolidb-eMYSQL_USERdolidbuser-eMYSQL_PASSWORDchange-me-db-pass-v/www/wwwroot/dolibarr/mariadb:/var/lib/mysql docker.xuanyuan.run/library/mariadb:11.4.13# 等数据库就绪后再启动 Web约数十秒dockerrun-d--namedolibarr-web--networkdolibarr-net--restartunless-stopped-p8088:80-eDOLI_INSTALL_AUTO1-eDOLI_DB_HOSTdolibarr-mariadb-eDOLI_DB_NAMEdolidb-eDOLI_DB_USERdolidbuser-eDOLI_DB_PASSWORDchange-me-db-pass-eDOLI_URL_ROOThttp://192.168.1.35:8088-eDOLI_ADMIN_LOGINadmin-eDOLI_ADMIN_PASSWORDchange-me-admin-pass-eDOLI_COMPANY_NAMEMyCompany-eDOLI_COMPANY_COUNTRYCODECN-eWWW_USER_ID1000-eWWW_GROUP_ID1000-v/www/wwwroot/dolibarr/documents:/var/www/documents-v/www/wwwroot/dolibarr/custom:/var/www/html/custom docker.xuanyuan.run/dolibarr/dolibarr:22.0.5dockerps--filternamedolibarrdockerlogs--tail100dolibarr-web七、常见问题为什么不用latestlatest在拉取时会换成当时的新镜像界面和迁移步骤可能与本文不一致。本文命令使用22.0.5。升级之前先备份mariadb、documents、custom。然后再修改应用镜像标签。为什么宿主机是 8088容器内监听80。宿主机80经常被 Nginx 或宝塔占用。宿主机80空闲时可以把映射改成80:80。改端口之后把DOLI_URL_ROOT改成同一个地址。和tuxgasy/dolibarr有什么区别社区镜像曾常用tuxgasy/dolibarr。本文使用官方镜像dolibarr/dolibarr见 dolibarr-docker。不要让两套镜像共用同一份documents或数据库目录。和 Odoo / ERPNext 怎么选Dolibarr 更轻模块可以逐个打开适合中小团队先完成销售和库存。Odoo 和 ERPNext 的功能通常更多学习和运维成本也更高。按团队规模选择。不要把 Odoo 或 ERPNext 和本文的 Compose 部署混在一起。国家选了 China主币种仍是欧元自动安装会写入国家代码。主币种仍可能保持默认的欧元。打开「公司 / 组织」。把主币种改为人民币或你需要的币种并保存。页面空白或安装很久现象是页面空白或首次安装长时间没有完成。先查看docker compose logs web和docker compose logs mariadb。数据库未就绪、DOLI_DB_PASSWORD与MYSQL_PASSWORD不一致、documents目录权限不对都会让安装停住。首次启动会导入数百个 SQL 文件可能要数分钟。日志出现就绪句并且 Apache 已启动之后再打开页面。日志里mkdir: … conf: File exists安装脚本会尝试创建已经存在的conf目录。这条日志可以忽略。日志里AH00558/ ServerName这是 Apache 没有设置全局ServerName时的提示。这条日志可以忽略。要去掉这条提示时按上游说明挂载servername.conf。升级大版本怎么做升级前先选定迁移方式。保持DOLI_INSTALL_AUTO1时安装程序会自动迁移数据库。也可以打开/install使用网页向导升级。备份mariadb、documents、custom。删除documents/install.lock。修改 Compose 中的应用镜像标签。执行docker compose pull docker compose up -d。如何启用演示数据只在首次安装之前把DOLI_INIT_DEMO设为1。数据库已经创建之后再改这个变量不会补进演示数据。可以用 PostgreSQL 吗本文主路径使用 MariaDB。若改用 PostgreSQL官方要求首次安装打开网页/install。install.lock需要自行维护。把DOLI_DB_TYPE设为pgsql。再把数据库连接改到 PostgreSQL。密码能否用 Docker Secrets部分变量支持_FILE后缀例如DOLI_DB_PASSWORD_FILE。写法见上游 with-secrets。八、命令速查# 拉取dockerpull docker.xuanyuan.run/dolibarr/dolibarr:22.0.5dockerpull docker.xuanyuan.run/library/mariadb:11.4.13# Composecd/www/wwwroot/dolibarrdockercompose up-ddockercomposepsdockercompose logs-fwebdockercompose down# 探测curl-sIhttp://127.0.0.1:8088/|head-n5九、延伸阅读资源链接dolibarr/dolibarr 镜像页https://xuanyuan.cloud/r/dolibarr/dolibarr标签列表https://xuanyuan.cloud/r/dolibarr/dolibarr/tagsGitHub · Dolibarr/dolibarr-dockerhttps://github.com/Dolibarr/dolibarr-dockerGitHub · dolibarr/dolibarrhttps://github.com/dolibarr/dolibarrDocker Hub · dolibarr/dolibarrhttps://hub.docker.com/r/dolibarr/dolibarrDolibarr 官网https://www.dolibarr.org/Dolibarr Wikihttps://wiki.dolibarr.org/轩辕镜像使用手册https://xuanyuan.cloud/usage阅读原文轩辕镜像官方博客https://xuanyuan.cloud/blog/dolibarr-docker-deploy
返回列表