本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

这些容器仅用于本地开发,专为该场景优化。生产环境使用请联系Brightspot。
[!NOTE] 自2025年7月24日起,不带构建号的容器镜像标签(如
brightspot/tomcat:9.0-jdk11)已弃用且不再支持。您现在应在项目中使用带构建号的完整镜像标签(如brightspot/tomcat:9.0.107-jdk11-57)。详见弃用标签。
最新版本及其推荐的Docker Compose配置将始终在此文档中更新。
docker-compose.yml 的文件,内容如下(将 ${my-project} 替换为项目名称或适当值):services: mysql: image: brightspot/mysql:percona80-11 ports: - 3306:3306 volumes: - mysql-data:/var/lib/mysql - mysql-logs:/var/log/mysql solr: image: brightspot/solr:8.11.1-52 environment: - SOLR_CONFIG=dari-solr-11 ports: - 8983:8983 volumes: - solr-data:/var/solr tomcat: image: brightspot/tomcat:9.0.107-jdk11-57 hostname: "${my-project}.brightspot" depends_on: mysql: condition: service_healthy solr: condition: service_healthy ports: - 5005:5005 - 9010:9010 volumes: - .:/code:cached - $HOME/.aws/credentials:/etc/aws/credentials:cached - storage-data:/servers/tomcat/storage environment: - ROOT_WAR="/code/web/build/libs/${my-project}-web-1.0.0-SNAPSHOT.war" - CONTEXT_PROPERTIES=/code/docker-context.properties - CONTEXT_PROPERTIES_OVERRIDES=/code/docker-context-overrides.properties - LOGGING_PROPERTIES=/code/docker-logging.properties - AWS_PROFILE="psd-${my-project}" - ENABLE_JACOCO=false - ENABLE_JFR=false apache: image: brightspot/apache:2.4-dims3.3.25-44 depends_on: tomcat: condition: service_healthy ports: - 80:80 - 443:443 volumes: - storage-data:/var/www/localhost/htdocs/storage volumes: mysql-data: mysql-logs: solr-data: storage-data:
docker-context.properties 文件,内容如下:注意:这些上下文属性特定于
brightspot/solr:8.11.1-52。如果使用其他SOLR版本,请替换为相应版本的属性。
dari/database/brightspot/delegate/solr/class=com.psddev.dari.solr.SolrDatabase dari/database/brightspot/delegate/solr/groups=-* +cms.content.searchable dari/database/brightspot/delegate/solr/clientSupplierClass=com.psddev.dari.solr.client.HttpSolrClientSupplier dari/database/brightspot/delegate/solr/client/baseServerUrl=[***] dari/database/brightspot/delegate/solr/collection=collection1 dari/database/brightspot/delegate/solr/saveData=false
docker-compose up 或 docker-compose up -d 启动容器。其他选项参见docker-compose文档。ROOT_WAR 包含容器中项目war文件的路径。
CONTEXT_PROPERTIES 包含属性文件的路径,该文件将被解析并作为 <Environment> 元素添加到Tomcat的context.xml中。
例如,docker-context.properties:
dari/debugUsername=debug dari/debugPassword=12345 dari/debugRealm=Brightspot-Docker
将转换为 context.xml:
<Environment name="dari/debugUsername" value="debug" type="java.lang.String"/> <Environment name="dari/debugPassword" value="12345" type="java.lang.String"/> <Environment name="dari/debugRealm" value="Brightspot-Docker" type="java.lang.String"/>
CONTEXT_PROPERTIES_OVERRIDES 包含属性文件的路径,该文件将在 CONTEXT_PROPERTIES 之后解析并添加(见上文)。这允许您维护共享的项目级配置,并添加本地(即不受版本控制)的值。
注意:
如果在 CONTEXT_PROPERTIES 和 CONTEXT_PROPERTIES_OVERRIDES 中存在重复值,CONTEXT_PROPERTIES 中的原始值将被 CONTEXT_PROPERTIES_OVERRIDES 中的值替换。如果需要替换整个配置,也可以在 docker-compose.override.yml 中为 CONTEXT_PROPERTIES 设置不同的路径,使用修改后的版本。
LOGGING_PROPERTIES 包含将附加到Tomcat的logging.properties的属性文件路径。
例如,docker-logging.properties:
com.my.package.level = FINE com.my.package.MyClass.level = FINE com.other.package.NoisyClass.level = SEVERE
INIT_SH 包含容器启动时将执行的初始化脚本路径。
示例:
environment: - INIT_SH=/code/docker-tomcat-init.sh
注意: 确保 docker-tomcat-init.sh 是可执行的!
通过主机凭证文件访问AWS服务需两步:
确保 ~/.aws/credentials 文件挂载到Docker容器中的 /etc/aws/credentials(见上文 docker-compose.yml)
在 docker-compose.yml 的 environment: 下添加如下行并运行 docker-compose up 应用更改:
- AWS_PROFILE=psd-${my-project} - AWS_REGION=us-east-1
注意,us-east-1已作为默认区域提供,仅在需要测试其他区域时才需覆盖。
现在,对主机凭证文件的任何更改(例如通过 beam credentials)都将对容器中的 DefaultAWSCredentialsProviderChain 可见。
在Tomcat进程上启用Java Flight Recorder。
如果Tomcat以 ENABLE_JFR=true 启动,可使用以下命令生成JFR转储:
docker-compose exec tomcat jfr-dump.sh
默认情况下,将在/code中创建文件。可使用 JFR_DIR 环境变量覆盖默认路径,或在调用jfr-dump.sh时指定文件名作为第一个参数。
JFR转储文件可使用JDK Mission Control分析。
启用JaCoCo进行代码覆盖率分析。注意这将禁用Reloader。
ENABLE_JACOCO=true
传递给Jacoco的选项。这些将自动包含在 CATALINA_OPTS 中。
默认为 append=false。
JACOCO_ARGS=destfile=/code/web/build/jacoco/playwright.exec,append=false,classdumpdir=/code/web/build/jacoco-classes/
如果 TEMPLATE_CONFIG 包含YAML文件路径(例如 TEMPLATE_CONFIG=/code/docker-template.yml),该文件将用于填充/etc/docker/templates中列出的ERB模板。
例如:
data: brightspot: extra_dari_db: otherdatabase extra_resources: - name: database1 # 必需 minimum_idle: 4 # 默认:2 idle_timeout: 20000 # 默认:10000 maximum_pool_size: 16 # 默认:12 max_lifetime: 60000 # 默认:30000 connection_timeout: 2000 # 默认:1000 host: host # 默认:localhost port: 3306 # 默认:3306 database_name: database1 # 默认:'name'属性值 user: user # 必需 password: password # 必需 - name: database2 minimum_idle: 4 idle_timeout: 20000 maximum_pool_size: 16 max_lifetime: 60000 connection_timeout: 2000 host: host port: 3306 database_name: database2 user: user password: password
这将填充/servers/tomcat/conf/context.xml.erb和/servers/tomcat/conf/server.xml.erb中的 @data['brightspot']['extra_dari_db'] 设置。
还将在/servers/tomcat/conf/server.xml.erb中创建额外的资源链接。
未来的模板配置将在此处记录。
Apache服务器上启用了SSL。要信任证书以便任何域都能正常工作,请在Mac上运行以下命令:
curl -O [***] sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain brightspot-docker-ca.pem
HTTP请求缓存仅在响应中存在Cache-Control头时通过Apache mod_cache提供。
要完全禁用mod_cache,向 apache 容器添加环境变量:DISABLE_CACHE=true
hostname 属性的唯一目的是提供一致的主机名,可在站点设置中发布为任务主机。
远程调试在端口5005上公开。
JMX提供了监控Brightspot性能、资源消耗和管理各种运行时方面的标准方式。默认启用。
使用JConsole或VisualVM等工具连接到 localhost:9010。
可使用环境变量 JMX_PORT 自定义此端口。确保在 ports 配置中内外使用相同值——Docker网络内外必须是相同端口。
注意:如果使用4.1.8或更高版本的Brightspot Gradle插件,并在gradle.properties中添加了'systemProp.codePath=/code',则此步骤不必要。
在项目根目录创建第二个文件 docker-compose.override.yml,内容如下:
services: tomcat: volumes: - $PWD:$PWD:cached
这将允许Brightspot扫描主机文件系统以自动重新编译Java源文件。
将此函数添加到 ~/.bash_profile:
function d() { docker-compose exec $1 bash --login; }
使用此函数从项目目录按名称登录到每个容器,例如:
$ d tomcat [brightspot tomcat:~]$ cat /servers/tomcat/conf/context.xml
以下命令可在当前工作目录位于项目内时在命令行执行。
docker-compose restart tomcatdocker-compose stopdocker-compose start 或 docker-compose start -d 在后台运行docker-compose downdocker volume prunedocker-sync-stack startdocker-compose logs -f tomcatdocker-compose exec tomcat bashdocker-compose stop 或在前台运行时按Ctrl+Cdocker-compose run mysql restore mysql -e qa --user ${UserName} --project ${DatabaseName} --account ${Account} --renamedb ${Project} --region=${Region}
docker-compose run mysql restore mysql -e qa --user bob --project myproject --account psd-myproject --renamedb myproject --region=us-west-1docker-compose start对于运行 mysql5.6 或 percona5.6 的项目,按以下步骤升级到 percona57,然后可选择升级到 percona80。每个用户都需要单独执行这些步骤,因为每个用户都有自己独立的MySQL数据。
如果不关心现有数据,可跳过这些步骤,只需删除mysql卷,然后将mysql镜像更新为所需的 percona57 或 percona80。
如果现有数据重要,备份当前MySQL卷。
关闭Docker
$ docker compose down
在 docker-compose.yml 中将mysql镜像更新为 percona57-3
mysql: image: brightspot/mysql:percona57-3
运行以下命令:
$ docker compose up -d mysql $ docker compose exec mysql mysql_upgrade $ docker compose down mysql
正常启动Docker,确保CMS和前端加载。此时已成功升级到Percona 5.7,可停止。
如果要继续升级到 percona80,运行以下命令:
$ docker compose exec mysql mysql --user=root --password mysql> SET GLOBAL innodb_fast_shutdown = 0; mysql> exit
然后关闭Docker:
$ docker compose down
在 docker-compose.yml 中将mysql镜像更新为 percona80-11
mysql: image: brightspot/mysql:percona80-11
运行以下命令(mysql uid已更改,因此需要将现有文件更新为新uid):
$ docker compose run --rm mysql sh $ sudo find /var/lib/mysql -user 999 -exec chown mysql {} \; $ sudo find /var/lib/mysql -group 999 -exec chown :mysql {} \;
测试mysql
$ docker compose up mysql
如果mysql启动失败,类似:
[ERROR] [MY-012526] [InnoDB] Upgrade is not supported after a crash or shutdown with innodb_fast_shutdown = 2. This redo log was created with MySQL 5.7.32-35, and it appears logically non empty. Please follow the instructions at [***]
则运行以下命令:
$ docker compose run --rm mysql sh $ rm /var/lib/mysql/ib_logfile0 $ rm /var/lib/mysql/ib_logfile1

免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429