专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单页面收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题轩辕镜像免费版
其他
关于我们网站地图
热门搜索:
sugardockerized

esimonetti/sugardockerized

自动构建
esimonetti

SugarDockerized是一个Docker化的Sugar CRM开发全栈解决方案,支持多种平台组合和版本,提供单服务器和负载均衡集群两种部署模式,包含Apache、MySQL、Elasticsearch、Redis等组件,适合Sugar CRM的本地开发和测试环境搭建。

4 次收藏下载次数: 0状态:自动构建维护者:esimonetti仓库类型:镜像最近更新:3 年前
让 AI 帮你使用轩辕镜像? · 展开查看说明

如果你用 DeepSeek、元宝AI、Copilot 等 AI 代为编写轩辕镜像的 docker pull、修改 compose 镜像地址,或排查拉取失败等问题,请让 AI 先读规则再动手,只要在 AI 对话里直接发送下面这句话即可:

生成 docker pull、修改 compose 的 image,或排查拉取失败前,请先阅读并严格遵守 https://xuanyuan.cloud/agents.md 中的规则。

国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

轩辕镜像,不浪费每一次拉取。点击查看
中文简介
标签下载
镜像标签列表与下载命令
轩辕镜像,不浪费每一次拉取。点击查看

Sugar Dockerized ![Build Status]([***] !Docker Pulls

本仓库帮助您部署基于Docker的Sugar开发全栈,满足不同平台组合的所有平台要求。

可用的栈

有几个可用的栈,每个栈本身包含多种平台组合。您可以通过以下链接了解特定栈的更多信息:

  • Sugar 9
  • Sugar 83 - 仅适用于Sugar Cloud版本的本地开发
  • Sugar 8

您可以在项目的stack目录中找到其他栈。

栈的类型

主要有两种类型的栈:

  • 单Apache Web服务器 - 初始开发
  • 带有两个Apache Web服务器集群的Apache负载均衡器 - 更真实的环境,用于验证所有功能是否正常工作

所有栈组件

有多个作为Docker容器的栈组件,执行不同的任务。并非所有栈组件都可能在特定的栈设置中使用。

  • Apache负载均衡器 - 在Apache PHP Web服务器集群之间进行轮询负载均衡
  • Apache PHP Web服务器 - Web服务器
  • MySQL数据库 - 数据库
  • Elasticsearch - Sugar搜索引擎
  • Redis - 两个用途:Sugar对象缓存服务和PHP会话存储/共享服务
  • Cron - Sugar后台调度程序处理。注意,这会立即启用,一旦文件可用就会运行cron.php,并且自上次运行以来将尝试每60秒运行一次。此容器用于开发期间所需的任何其他CLI执行
  • Permission - 正确设置Sugar实例权限,然后终止
  • LDAP - 如需LDAP测试服务器,用于身份验证

启动系统

  • 为使一切顺利运行,第一步是在您计算机的主机文件/etc/hosts中添加条目"docker.local",指向您机器的IP(如果在本地或运行Docker的VM中运行栈,可能是127.0.0.1)
  • 使用git clone https://github.com/esimonetti/SugarDockerized.git sugardocker克隆仓库,并使用cd sugardocker进入sugardocker目录
  • 运行工具./utilities/setownership.sh以设置数据目录的正确所有权
  • 通过选择stacks内子目录中的正确yml文件来选择要运行的栈组合。有关更多详细信息和示例,请参见下一步。
  • 为选定的<stack yml filename>运行docker-compose -f <stack yml filename> up -d。例如,如果我们选择stacks/sugar8/php71.yml,您将运行docker-compose -f stacks/sugar8/php71.yml up -d

当前版本支持

主要栈适用于Sugar 9.0版本及其所有平台要求。其他栈与版本8.0、7.9以及仅Sugar Cloud版本(7.10/7.11、8.1、8.2和8.3)的平台要求保持一致。

启动和停止所需的栈

  • 使用docker-compose -f <stack yml filename> up -d运行栈
  • 使用docker-compose -f <stack yml filename> down停止栈

为了方便启动和停止栈以及在它们之间切换,提供了https://github.com/esimonetti/SugarDockerized#stacksh%E3%80%82

系统详细信息

栈组件主机名

  • Apache负载均衡器: sugar-lb
  • Apache PHP Web服务器: 单栈:sugar-web1 集群栈:sugar-web1 和 sugar-web2
  • MySQL数据库: sugar-mysql
  • Elasticsearch: sugar-elasticsearch
  • Redis - sugar-redis
  • Cron - sugar-cron
  • Permission - sugar-permissions
  • LDAP - sugar-ldap

要验证所有组件主机名,只需在栈运行时运行docker ps。

请注意,在此设置中,只有Web服务器或负载均衡器(如果在单Web服务器或集群栈中)和数据库可以从外部访问。其他所有组件仅允许在栈组件内部访问。

核心栈组件

  • Linux
  • Apache
  • MySQL
  • PHP
  • Redis
  • Elasticsearch

Sugar设置详情

  • 浏览器URL: [***] - 基于本地计算机上定义的主机文件条目
  • MySQL主机名: sugar-mysql
    • MySQL用户: root
    • MySQL密码: root
  • Elasticsearch主机名: sugar-elasticsearch
  • Redis主机名: sugar-redis

Apache附加信息

Apache Web服务器已启用:

  • mod_headers
  • mod_expires
  • mod_deflate
  • mod_rewrite

PHP附加信息

Apache Web服务器的PHP已启用:

  • Zend OPcache - 针对Sugar配置,假设文件将位于正确的路径中
  • XHProf和Tideways分析器
  • Xdebug已安装但默认未启用(由于其性能影响)。如果需要启用,您必须取消选择的PHP Dockerfile上的配置选项,并利用带有本地构建的栈配置。
    • 如果您使用PHPStorm等IDE,可以在菜单Preference -> Language & Framework -> PHP -> Debug -> DBGp Proxy下设置DBGp代理。示例设置可在下面的截图中找到:

      • 使用Xdebug Helper调试

        如果您使用Chrome浏览器,可以安装扩展Xdebug helper。准备调试时,点击Xdebug helper上的调试按钮,然后在PHPStorm中点击"Start listening for PHP Debug Connections"

      • 使用Postman调试

        可以通过类似的方法通过Postman调试特定的API端点。 在此示例中,我们将调试登录身份验证API端点rest/v11_1/oauth2/token。第一步是在Postman中添加cookie "XDEBUG_SESSION"。该cookie通过Xdebug helper设置,并且该关键字在PHPstorm设置和Xdebug PHP服务器端设置中也被引用。 请参见下面的截图:

会话存储通过Redis容器完成。

Elasticsearch附加信息

如果您注意到Elasticsearch容器未运行(使用docker ps检查),可能需要调整Linux主机设置。 要能够运行Elasticsearch 5及更高版本,需要增加进程可以拥有的最大映射内存。要永久完成此更改,请运行:

echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf

或者可以运行时增加限制:

sudo sysctl -w vm.max_map_count=262144

Docker镜像

  • images/php/XY/apache/ - 带有PHP X.X版本的Apache镜像
  • images/php/XY/cron/ - PHP X.Y版本的镜像,用于后台作业和任何CLI需求
  • images/mysql/XY/ - MySQL X.Y版本的镜像
  • images/elasticsearch/XY/ - Elasticsearch X.Y的镜像
  • images/permissions/ - 权限修复容器的镜像
  • images/loadbalancer/ - Apache负载均衡器的镜像
  • images/jmeter/ - Jmeter的镜像
  • images/sidecar-build/ - 用于构建Sidecar的javascript的镜像
  • images/traefik/ - Traefik镜像,当使用VM时在本地网络中公开Sugar
  • images/ldap/ - OpenLDAP镜像

大多数镜像目前使用Debian Linux。

持久存储位置

所有持久存储位于此git仓库的本地检出中的./data目录树内。

  • Web服务器提供的Sugar应用程序文件以及cronjob服务器使用的文件必须位于./data/app/sugar/中。在Web服务器和cronjob服务器中,位置是/var/www/html/sugar/。./data/app/中的所有内容都可以通过浏览器访问,但Sugar实例文件必须位于./data/app/sugar/中
  • MySQL文件位于./data/mysql/XY/
  • Elasticsearch文件位于./data/elasticsearch/XY/
  • Redis文件位于./data/redis/
  • LDAP文件位于./data/ldap/

不要更改各种数据子目录的权限,因为这可能导致系统无法正常工作。

Sugar单实例应用程序文件 - 重要说明

此设置旨在仅运行单个Sugar实例。它还要求应用程序文件恰好位于正确的位置,原因如下三个:

  1. 文件系统权限设置
  2. PHP OPcache设置(例如:不应缓存的文件的黑名单)
  3. Cronjob后台进程运行

由于上述原因,单实例Sugar的文件必须位于./data/app/sugar/(无子目录)中,以便栈设置按预期工作。 如果您确实需要多个实例,只要它们不同时运行,您可以利用提供的工具来复制和交换数据目录。

提示

实用程序

为了帮助开发,在本仓库的utilities 目录中提供了一组工具。下面提到了一些脚本。

setownership.sh

./utilities/setownership.sh

All directories and files within "data" are now owned by uid:gid 1000:1000

它设置数据目录的正确所有权

stack.sh

./utilities/stack.sh 80 down

./utilities/stack.sh 80 down
stacks/sugar8/php71.yml down
Stopping sugar-cron          ... done
Stopping sugar-web1          ... done
Stopping sugar-redis         ... done
Stopping sugar-mysql         ... done
Stopping sugar-elasticsearch ... done
Removing sugar-cron          ... done
Removing sugar-web1          ... done
Removing sugar-redis         ... done
Removing sugar-mysql         ... done
Removing sugar-permissions   ... done
Removing sugar-elasticsearch ... done
Removing network sugar8_default
No stopped containers

它有助于将作为参数传递的sugar版本的默认栈启动或停止。它需要两个参数:版本号(例如:80、90等)和up/down。 查看配置文件./utilities/stacks.conf,了解脚本的所有可用栈组合。对于一些主要栈,提供了"local"版本的栈,允许本地修改设置和本地docker镜像构建。

runcli.sh

./utilities/runcli.sh "php ./bin/sugarcrm password:weak" 它有助于在CLI容器中执行命令。它要求栈正在运行

backup.sh

./utilities/backup.sh 802_2018_11_21

Backing up sugar to "backups/backup_802_2018_11_21"
[sudo] password for docker: 
Application files backed up on backups/backup_802_2018_11_21/sugar
Database backed up on backups/backup_802_2018_11_21/sugar.sql

它将sugar文件的快照保存在backups/backup_802_2018_11_21/sugar上,并将MySQL数据库转储保存在backups/backup_802_2018_11_21/sugar.sql上。 该脚本假设数据库名称是sugar,Web目录也是sugar。该脚本不备份Elasticsearch和/或Redis。

restore.sh

./utilities/restore.sh 802_2018_11_21

Restoring sugar from "backups/backup_802_2018_11_21"
sugar-permissions
Application files restored
Database "sugar" dropped
Database restored
Debug: Entering directory .
Repairing...
Repair completed in 9 seconds.
System repaired

它从backups/backup_802_2018_11_21/sugar恢复之前的sugar文件快照,并从backups/backup_802_2018_11_21/sugar.sql恢复MySQL。 该脚本假设数据库名称是sugar,Web目录也是sugar。该脚本不恢复Elasticsearch和/或Redis。

copysystem.sh

./utilities/copysystem.sh data_80_clean data_80_clean_copy

Copying "data_80_clean" to "data_80_clean_copy"
Copying data_80_clean to data_80_clean_copy
Copy completed, you can now swap or start the system

它有助于将完整的data_80_clean内容复制到选择的另一个备份目录(data_80_clean_copy)。它要求栈处于关闭状态(并且它将检查这一点)。当需要同时复制Elasticsearch、Redis等内容时,这非常有用。

swapsystems.sh

./utilities/swapsystems.sh backup_2018_06_28 data_80_clean

Moving "data" to "backup_2018_06_28" and "data_80_clean" to "data"
Moving data to backup_2018_06_28
Moving data_80_clean to data
You can now start the system with the content of data_80_clean

它有助于将当前的data目录移动到backup_2018_06_28,然后将data_80_clean移动到data,有效地交换当前正在使用的数据。它要求栈处于关闭状态(并且它将检查这一点)

检测Web服务器PHP错误日志

为了始终如一地实现这一点,建议使用单Web服务器栈。 通过运行命令docker logs -f sugar-web1,可以跟踪Apache和/或PHP的访问和错误日志输出

修复Sugar权限

您只需要使用docker start sugar-permissions再次运行权限docker容器。该容器将为您修复文件的权限和所有权,然后终止其执行。 Apache和Cron以sugar用户身份运行。在config_override.php上设置以下选项

$sugar_config['default_permissions']['user'] = 'sugar';
$sugar_config['default_permissions']['group'] = 'sugar';

运行包含的命令行修复

该应用程序包含一些脚本,旨在方便从命令行进行系统修复。这些脚本将清除各种缓存(包括OPcache和Redis,如果使用的话)。它还将尽可能预热应用程序,以改善首次加载时的浏览器体验。运行修复的cron容器也经过优化,以加快修复处理速度。 要从docker主机运行修复,假设仓库已检出到sugardocker,请执行:

cd sugardocker
./repair

设置Sugar实例以利用Redis对象缓存

在config_override.php中添加以下选项:

$sugar_config['external_cache_disabled'] = false;
$sugar_config['external_cache_disabled_redis'] = false;
$sugar_config['external_cache']['redis']['host'] = 'sugar-redis';

确保在您的config/config_override.php组合上没有启用其他缓存机制,否则将它们设置为disabled = true。

运行

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 sugardockerized 镜像标签

docker pull docker.xuanyuan.run/esimonetti/sugardockerized:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull esimonetti/sugardockerized:<标签>

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

Docker 配置

登录仓库拉取

通过 Docker 登录认证访问私有仓库

用 AI 使用轩辕镜像

发给 Cursor、ChatGPT、豆包等 AI 的说明文档

专属域名拉取

无需登录使用专属域名

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

Harbor 镜像源配置

Harbor Proxy Repository 对接专属域名

Portainer 镜像源配置

Portainer Registries 加速拉取

Nexus 镜像源配置

Nexus3 Docker Proxy 内网缓存

系统配置

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

MacOS OrbStack

MacOS OrbStack 容器配置

Docker Compose

Docker Compose 项目配置

NAS 设备

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

极空间

极空间 NAS 系统配置服务

网络设备

爱快路由

爱快 iKuai 路由系统配置

宝塔面板

在宝塔面板一键配置镜像

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

使用与功能问题

配置了专属域名后,docker search 为什么会报错?

docker search 限制

Docker Hub 上有的镜像,为什么在轩辕镜像网站搜不到?

站内搜不到镜像

机器不能直连外网时,怎么用 docker save / load 迁镜像?

离线 save/load

docker pull 拉插件报错(plugin v1+json)怎么办?

插件要用 plugin install

WSL 里 Docker 拉镜像特别慢,怎么排查和优化?

WSL 拉取慢

轩辕镜像安全吗?如何用 digest 校验镜像没被篡改?

安全与 digest

第一次用轩辕镜像拉 Docker 镜像,要怎么登录和配置?

新手拉取配置

轩辕镜像合规吗?轩辕镜像的合规是怎么做的?

镜像合规机制

轩辕镜像支持 docker push 上传本地镜像吗?

不支持 push

错误码与失败问题

docker pull 提示 manifest unknown 怎么办?

manifest unknown

docker pull 提示 no matching manifest 怎么办?

no matching manifest(架构)

镜像已拉取完成,却提示 invalid tar header 或 failed to register layer 怎么办?

invalid tar header(解压)

Docker pull 时 HTTPS / TLS 证书验证失败怎么办?

TLS 证书失败

Docker pull 时 DNS 解析超时或连不上仓库怎么办?

DNS 超时

docker 无法连接轩辕镜像域名怎么办?

域名连通性排查

Docker 拉取出现 410 Gone 怎么办?

410 Gone 排查

出现 402 或「流量用尽」提示怎么办?

402 与流量用尽

Docker 拉取提示 UNAUTHORIZED(401)怎么办?

401 认证失败

遇到 429 Too Many Requests(请求太频繁)怎么办?

429 限流

docker login 提示 Cannot autolaunch D-Bus,还算登录成功吗?

D-Bus 凭证提示

为什么会出现「单层超过 20GB」或 413,无法加速拉取?

413 与超大单层

账号 / 计费 / 权限

轩辕镜像免费版和专业版有什么区别?

免费版与专业版区别

轩辕镜像支持哪些 Docker 镜像仓库?

支持的镜像仓库

镜像拉取失败还会不会扣流量?

失败是否计费

麒麟 V10 / 统信 UOS 提示 KYSEC 权限不够怎么办?

KYSEC 拦截脚本

如何在轩辕镜像申请开发票?

申请开发票(企业 / 个人)

怎么修改轩辕镜像的网站登录和仓库登录密码?

修改登录密码

如何注销轩辕镜像账户?要注意什么?

注销账户

配置与原理类

写了 registry-mirrors,为什么还是走官方或仍然报错?

mirrors 不生效

怎么用 docker tag 去掉镜像名里的轩辕域名前缀?

去掉域名前缀

如何拉取指定 CPU 架构的镜像(如 ARM64、AMD64)?

指定架构拉取

用轩辕镜像拉镜像时快时慢,常见原因有哪些?

拉取速度原因

为什么拉取镜像的 :latest 标签,拿到的往往不是「最新」镜像?

latest 与「最新」

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
esimonetti/sugardockerized
博客Docker 镜像公告与技术博客
热门查看热门 Docker 镜像推荐
安装一键安装 Docker 并配置镜像源
镜像拉取问题咨询请 提交工单。官方公众号:源码跳动。官方技术交流群:51517718。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
镜像拉取问题咨询请提交工单。官方公众号:源码跳动。官方技术交流群:。轩辕镜像所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
商务合作:点击复制邮箱
©2024-2026 源码跳动
商务合作:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.