Alfresco Content Services dockerCompose自动化部署详尽操作
Alfresco Content Services docker社区部署文档
Alfresco Content Services简介
Alfresco Content Services(简称ACS)是一款功能完备的企业内容管理(ECM)解决方案,主要面向那些对企业级内容管理有高要求的组织。具体如下:
- 核心优势:具备企业级的可扩展性、高性能,用于管理企业关键业务内容并确保合规性。这意味着企业在业务规模不断扩大、内容数据量持续增长的情况下,Alfresco Content Services能稳定高效运行,同时时刻满足企业在数据安全、法规遵循等方面的要求。
- 主要用途:可应用于多种场景。包括内容和治理服务,帮助企业管理内容的整个生命周期,从创建、存储到最终删除,确保符合法规和企业内部政策;支持上下文搜索和洞察,用户能基于内容的上下文关系进行精准搜索,挖掘有价值的信息;还能轻松与其他应用集成,打破信息孤岛,提升企业整体业务流程的连贯性和效率。
- 关键能力:围绕内容管理提供丰富的功能。在文档管理方面,实现文档的存储、版本控制、权限设置等基础操作;支持文档扫描和捕获,便于将纸质文档转化为数字化信息纳入管理体系;企业协作功能促进团队成员间的协同工作,共同处理和编辑文档;信息治理保障企业信息资产的安全合规;智能分析和洞察则通过对内容的深入挖掘,为企业决策提供数据支持。
Alfresco Content Services是一款功能强大的企业内容管理系统,以下是其官方简介:
- 功能全面
- 企业级内容管理:为企业提供了全面的文档管理功能,可实现对大量文件和文档的高效存储、共享、版本控制等操作,满足企业对业务关键内容的管理需求,确保内容的安全性和合规性。
- 智能流程管理:紧密集成流程与内容服务功能,能够简化以内容为中心的业务流程,让企业在处理文档等内容时,流程更加顺畅,从而支持更快、更明智的决策制定。
- 企业协作功能:可与Microsoft 365和Google Docs等无缝集成,为团队提供强大的企业协作工具,让团队成员能在不同平台上协同工作,提高工作效率。
- 信息治理:Alfresco Governance Services能够自动管理信息生命周期,减少用户干预,降低企业业务风险,增强合规性,确保企业信息资产的安全和有序管理。
- 智能分析:能够自动提取内容中的有价值信息,对内容和元数据进行自动丰富,为企业提供关键洞察,帮助企业更好地理解和利用其内容资产。
- 技术优势
- 基于开放标准和API:以开放标准和API为基础构建,易于与其他系统集成和定制,能轻松满足不同企业的多样化业务需求,可与企业现有的IT架构进行无缝对接。
- 容器化与微服务架构:采用容器化与微服务架构,借助Docker确保应用的轻量化与可移植性,通过Kubernetes或Docker Compose进行编排,增强了系统的弹性和可扩展性,方便在不同环境中部署和运行。
- 应用场景广泛
- 云部署:能在公有云或私有云中快速搭建内容管理系统,灵活应对云环境下的弹性资源需求,帮助企业充分利用云的优势进行内容管理。
- 开发与测试环境:为开发团队提供了快速搭建一致性环境的能力,有助于加速软件开发生命周期,提高开发和测试效率。
- 多环境部署管理:在不同的测试、预生产、生产环境中,能够高效同步配置,减少人工错误,确保各个环境的稳定性和一致性。
https://docs.alfresco.com/content-services #官网https://github.com/Alfresco/acs-deployment.git #github


前提条件
操作系统:unbuntu22.04
在开始之前,需要确保已经安装了 Docker 和 Docker Compose。Docker 用于创建和管理容器,Docker Compose 则用于定义和运行多容器的 Docker 应用。


测试验证之前把所有的之前的docker容器关掉或者删除,要不然会有端口冲突!
1. 创建目录结构
首先,创建一个目录来存放相关的配置文件和数据,例如:
mkdir alfresco-docker
cd alfresco-docker
2. 创建 docker-compose.yml 文件
在 alfresco-docker 目录下创建一个 docker-compose.yml 文件,以下是一个基本的示例配置:
# This docker-compose.yml file is used to spin up an Alfresco Content Services (ACS) trial cluster on a local host or on a server and it requires a minimum of 16GB Memory to distribute among containers.# To use this file to create a local installation of Alfresco Content Services, you need to have Docker Compose installed [https://docs.docker.com/compose/install/].
# Navigate to the folder where this file is located, and issue the following commands:
#
# docker login quay.io -u="alfresco+acs_v6_trial" -p="MDF9RNGUJPKZ83KK8UVGUVWO9AYKUZ0VN6WG5VOOCUT6BX19JJLU5ZL0HKU7N20C"
# docker-compose up
## For additional information about using this docker-compose file, please see:
# https://github.com/Alfresco/acs-deployment/blob/master/docs/docker-compose-deployment.md# You may wish to limit container memory and assign a certain percentage to JVM. There are couple of ways to allocate JVM Memory for ACS Containers
# For example: 'JAVA_OPTS: "$JAVA_OPTS -XX:+PrintFlagsFinal -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"'
# If container memory is not explicitly set, then the above flags will default max heap to 1/4th of container's memory.
version: "2"
services:alfresco:image: quay.io/alfresco/alfresco-content-repository:23.2.1mem_limit: 1900menvironment:JAVA_TOOL_OPTIONS: -Dencryption.keystore.type=JCEKS -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding -Dencryption.keyAlgorithm=DESede -Dencryption.keystore.location=/usr/local/tomcat/shared/classes/alfresco/extension/keystore/keystore -Dmetadata-keystore.password=mp6yc0UD9e -Dmetadata-keystore.aliases=metadata -Dmetadata-keystore.metadata.password=oKIWzVdEdA -Dmetadata-keystore.metadata.algorithm=DESedeJAVA_OPTS: "-Ddb.driver=org.postgresql.Driver-Ddb.username=alfresco-Ddb.password=alfresco-Ddb.url=jdbc:postgresql://postgres:5432/alfresco-Dindex.subsystem.name=elasticsearch-Delasticsearch.createIndexIfNotExists=true-Delasticsearch.host=elasticsearch-Delasticsearch.port=9200-Dshare.host=127.0.0.1-Dshare.port=8080-Dalfresco.host=localhost-Dalfresco.port=8080-Dcsrf.filter.enabled=false-Daos.baseUrlOverwrite=http://localhost:8080/alfresco/aos-Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\"-Ddeployment.method=DOCKER_COMPOSE-Dtransform.service.enabled=true-Dtransform.service.url=http://transform-router:8095-Dsfs.url=http://shared-file-store:8099/-DlocalTransform.core-aio.url=http://transform-core-aio:8090/-Ddsync.service.uris=http://localhost:9090/alfresco-DtrialUid=id10718692-XX:MinRAMPercentage=50-XX:MaxRAMPercentage=80"healthcheck:test:- CMD- curl- -f- http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/probes/-ready-interval: 30stimeout: 3sretries: 3start_period: 1mtransform-router:mem_limit: 512mimage: quay.io/alfresco/alfresco-transform-router:4.1.2environment:JAVA_OPTS: -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80ACTIVEMQ_URL: nio://activemq:61616CORE_AIO_URL: http://transform-core-aio:8090FILE_STORE_URL: http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/fileports:- "8095:8095"depends_on:- activemqtransform-core-aio:image: alfresco/alfresco-transform-core-aio:5.1.2mem_limit: 1536menvironment:JAVA_OPTS: -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80ACTIVEMQ_URL: nio://activemq:61616FILE_STORE_URL: http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/fileports:- "8090:8090"depends_on:- activemqshared-file-store:image: quay.io/alfresco/alfresco-shared-file-store:4.1.2mem_limit: 512menvironment:JAVA_OPTS: -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80scheduler.content.age.millis: 86400000scheduler.cleanup.interval: 86400000ports:- "8099:8099"volumes:- shared-file-store-volume:/tmp/Alfresco/sfsshare:image: quay.io/alfresco/alfresco-share:23.2.1mem_limit: 1genvironment:REPO_HOST: "alfresco"REPO_PORT: "8080"JAVA_OPTS: -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80 -Dalfresco.host=localhost -Dalfresco.port=8080 -Dalfresco.context=alfresco -Dalfresco.protocol=httppostgres:image: postgres:14.4mem_limit: 512menvironment:- POSTGRES_PASSWORD=alfresco- POSTGRES_USER=alfresco- POSTGRES_DB=alfrescocommand: postgres -c max_connections=300 -c log_min_messages=LOGports:- "5432:5432"elasticsearch:image: elasticsearch:7.10.1environment:- xpack.security.enabled=false- discovery.type=single-nodeulimits:memlock:soft: -1hard: -1nofile:soft: 65536hard: 65536cap_add:- IPC_LOCKports:- 9200:9200- 9300:9300search:image: quay.io/alfresco/alfresco-elasticsearch-live-indexing:4.0.1mem_limit: 1gdepends_on:elasticsearch:condition: service_startedsearch-reindexing:condition: service_completed_successfullyenvironment:ALFRESCO_ACCEPTED_CONTENT_MEDIA_TYPES_CACHE_BASE_URL: http://transform-core-aio:8090/transform/configALFRESCO_SHAREDFILESTORE_BASEURL: http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file/SPRING_ACTIVEMQ_BROKERURL: nio://activemq:61616SPRING_ELASTICSEARCH_REST_URIS: http://elasticsearch:9200search-reindexing:image: quay.io/alfresco/alfresco-elasticsearch-reindexing:4.0.1mem_limit: 1grestart: on-failure:10environment:ALFRESCO_ACCEPTED_CONTENT_MEDIA_TYPES_CACHE_BASE_URL: http://transform-core-aio:8090/transform/configSPRING_ACTIVEMQ_BROKERURL: nio://activemq:61616SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/alfrescoSPRING_DATASOURCE_USERNAME: alfrescoSPRING_DATASOURCE_PASSWORD: alfrescoSPRING_ELASTICSEARCH_REST_URIS: http://elasticsearch:9200depends_on:postgres:condition: service_startedelasticsearch:condition: service_startedalfresco:condition: service_healthyactivemq:image: alfresco/alfresco-activemq:5.18-jre17-rockylinux8mem_limit: 1gports:- "8161:8161" # Web Console- "5672:5672" # AMQP- "61616:61616" # OpenWire- "61613:61613" # STOMPdigital-workspace:image: quay.io/alfresco/alfresco-digital-workspace:4.4.1mem_limit: 128menvironment:APP_CONFIG_PROVIDER: "ECM"APP_CONFIG_AUTH_TYPE: "BASIC"BASE_PATH: ./APP_CONFIG_PLUGIN_PROCESS_SERVICE: "false"APP_CONFIG_PLUGIN_MICROSOFT_ONLINE: "false"APP_BASE_SHARE_URL: "http://localhost:8080/workspace/#/preview/s"control-center:image: quay.io/alfresco/alfresco-control-center:8.4.1mem_limit: 128menvironment:APP_CONFIG_PROVIDER: "ECM"APP_CONFIG_AUTH_TYPE: "BASIC"BASE_PATH: ./proxy:image: alfresco/alfresco-acs-nginx:3.4.2mem_limit: 128mdepends_on:- alfresco- digital-workspace- control-center- shareports:- "8080:8080"sync-service:image: quay.io/alfresco/service-sync:4.0.1mem_limit: 1genvironment:JAVA_OPTS: -Dsql.db.driver=org.postgresql.Driver -Dsql.db.url=jdbc:postgresql://postgres:5432/alfresco -Dsql.db.username=alfresco -Dsql.db.password=alfresco -Dmessaging.broker.host=activemq -Drepo.hostname=alfresco -Drepo.port=8080 -Ddw.server.applicationConnectors[0].type=http -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=80ports:- "9090:9090"
volumes:shared-file-store-volume:driver_opts:type: tmpfsdevice: tmpfs
将localhost替换你服务器的IP
3. 启动容器
在 docker-compose.yml 文件所在的目录下,运行以下命令启动容器:
执行构建命令
docker-compose up -d
解释:
docker-compose up 命令用于启动由 docker-compose.yml 文件定义的所有服务。
-d 参数表示在后台运行容器。
4. 验证部署
启动容器后,可以通过访问 http://localhost:8080/alfresco 来验证 Alfresco Content Services 是否成功部署。首次访问时,需要进行一些初始设置,例如创建管理员账户等。
5. 停止和删除容器
如果需要停止和删除容器,可以使用以下命令:
这个命令是集体删除容器,慎用。
docker-compose down
解释:
docker-compose down 命令会停止并删除由 docker-compose.yml 文件定义的所有服务及其相关的网络和卷(如果使用了 --volumes 参数)。
注意事项
配置调整:根据实际需求,可以调整 docker-compose.yml 文件中的配置,例如更改端口映射、环境变量等。

docker ps -a

笔者是用unbuntu桌面版访问localhost,如果是部署在没有桌面的服务器,在构建之前先把localhost替换成服务器IP!


admin admin

相关文章:
Alfresco Content Services dockerCompose自动化部署详尽操作
Alfresco Content Services docker社区部署文档 Alfresco Content Services简介 Alfresco Content Services(简称ACS)是一款功能完备的企业内容管理(ECM)解决方案,主要面向那些对企业级内容管理有高要求的组织。具体…...
Spring无法解决的循环依赖
在Spring框架中,循环依赖是指两个或多个Bean相互依赖,形成一个闭环。例如,Bean A依赖于Bean B,而Bean B又依赖于Bean A。虽然Spring通过三级缓存(一级缓存、二级缓存、三级缓存)机制解决了大多数情况下的循…...
电子应用设计方案105:智能家庭AI拖把系统设计
智能家庭 AI 拖把系统设计 一、引言 智能家庭 AI 拖把系统旨在为用户提供更高效、便捷和智能化的地面清洁解决方案,减轻家务劳动负担。 二、系统概述 1. 系统目标 - 自动清洁地面,包括吸尘、拖地和擦干功能。 - 智能识别地面材质和污渍程度,…...
01-02 三元组与七元组
01-02 三元组与七元组 好的!以下是关于网络中的 三元组(3-Tuple) 和 七元组(7-Tuple) 的详细扩展说明,包括它们的组成、用途以及与五元组的对比。 1. 三元组(3-Tuple) 组成 三元组…...
Spring整合Mybatis、junit纯注解
如何创建一个Spring项目 错误问题 不知道什么原因,大概是依赖版本不兼容、java版本不对的问题,折磨了好久就是搞不成。 主要原因看pom.xml配置 pom.xml配置 java版本 由于是跟着22年黑马视频做的,java版本换成了jdk-11,用21以…...
vue3中customRef的用法以及使用场景
1. 基本概念 customRef 是 Vue3 提供的用于创建自定义响应式引用的 API,允许显式地控制依赖追踪和触发响应。它返回一个带有 get 和 set 函数的工厂函数来自定义 ref 的行为。 1.1 基本语法 import { customRef } from vuefunction createCustomRef(value) {retu…...
深入探讨数据库索引类型:B-tree、Hash、GIN与GiST的对比与应用
title: 深入探讨数据库索引类型:B-tree、Hash、GIN与GiST的对比与应用 date: 2025/1/26 updated: 2025/1/26 author: cmdragon excerpt: 在现代数据库管理系统中,索引技术是提高查询性能的重要手段。当数据量不断增长时,如何快速、有效地访问这些数据成为了数据库设计的核…...
两数相加:链表操作的基础与扩展
两数相加:链表操作的基础与扩展 引言 链表(Linked List)是一种灵活且高效的数据结构,特别适用于动态增删操作。无论是初学者还是资深程序员,链表的基本操作都是算法学习中的重要一环。而 “两数相加” 问题则是链表操…...
智能码二维码的成本效益分析
以下是智能码二维码的成本效益分析: 成本方面 硬件成本 标签成本:二维码标签本身价格低廉,即使进行大规模应用,成本也相对较低。如在智能仓储中,塑料托盘加二维码方案的标签成本几乎可以忽略不计4。扫描设备成本&…...
分布式系统学习:小结
关于分布式系统的学习就暂时告一段落了,下面整理了个思维导图,只涉及分布式的一些相关概念,需要的可自取。后面准备写下关于AI编程相关的技术文章,毕竟要紧跟时代的脚步嘛 思维导图xmind文件下载地址:https://download…...
基于STM32的阿里云智能农业大棚
目录 前言: 项目效果演示: 一、简介 二、硬件需求准备 三、硬件框图 四、CubeMX配置 4.1、按键、蜂鸣器GPIO口配置 4.2、ADC输入配置 4.3、IIC——驱动OLED 4.4、DHT11温湿度读取 4.5、PWM配置——光照灯、水泵、风扇 4.6、串口——esp8266模…...
WGCLOUD使用介绍 - 如何监控ActiveMQ和RabbitMQ
根据WGCLOUD官网的信息,目前没有针对ActiveMQ和RabbitMQ这两个组件专门做适配 不过可以使用WGCLOUD已经具备的通用监测模块:进程监测、端口监测或者日志监测、接口监测 来对这两个组件进行监控...
Win11画图工具没了怎么重新安装
有些朋友想要简单地把图片另存为其他格式,或是进行一些编辑,但是发现自己的Win11系统里面没有画图工具,这可能是因为用户安装的是精简版的Win11系统,解决方法自然是重新安装一下画图工具,具体应该怎么做呢?…...
一次飞利浦电视机的意外童锁和卫星天线的重新授权(近30年前的电视)以及骂万能遥控
电视机被密码保护了,一开始我愣住了,意外是系统保护.防止修改.后来知道一个名,叫童锁.不知道的时候搜飞利浦电视密码,百度的结果 大多是0000,1234这个之类的, 试过都是不行的.偶然看到一个0711, 结果可以了, 再试试的时候,要求输入两次0711才解锁. 后来就在系统里改为0000,并且…...
“AI质量评估系统:智能守护,让品质无忧
嘿,各位小伙伴们!今天咱们来聊聊一个在现代社会中越来越重要的角色——AI质量评估系统。你知道吗?在这个快速发展的时代,产品质量已经成为企业生存和发展的关键。而AI质量评估系统,就像是我们的智能守护神,…...
Ubuntu 顶部状态栏 配置,gnu扩展程序
顶部状态栏 默认没有配置、隐藏的地方 安装使用Hide Top Bar 或Just Perfection等进行配置 1 安装 sudo apt install gnome-shell-extension-manager2 打开 安装的“扩展管理器” 3. 对顶部状态栏进行配置 使用Hide Top Bar 智能隐藏,或者使用Just Perfection 直…...
sqlite3 学习笔记
文章目录 前言SQL的概念与表格相关的操作i.创建表格(增)ii 删除表格(删)iii 更改表格(改)iv 查询表格(查) 与记录相关的操作i 插入记录ii 删除记录iii 查询记录iv 修改记录 Linux中使…...
cloc下载和使用
cloc(Count Lines of Code)是一个跨平台的命令行工具,用于计算代码行数。以下是下载和使用 cloc 的步骤: 下载 cloc 对于 Windows 用户: 访问 cloc 的 GitHub 仓库:https://github.com/AlDanial/cloc在 …...
自定义数据集使用框架的线性回归方法对其进行拟合
代码 import torch import numpy as np import torch.nn as nncriterion nn.MSELoss()data np.array([[-0.5, 7.7],[1.8, 98.5],[0.9, 57.8],[0.4, 39.2],[-1.4, -15.7],[-1.4, -37.3],[-1.8, -49.1],[1.5, 75.6],[0.4, 34.0],[0.8, 62.3]])x_data data[:, 0] y_data data…...
FPGA 使用 CLOCK_LOW_FANOUT 约束
使用 CLOCK_LOW_FANOUT 约束 您可以使用 CLOCK_LOW_FANOUT 约束在单个时钟区域中包含时钟缓存负载。在由全局时钟缓存直接驱动的时钟网段 上对 CLOCK_LOW_FANOUT 进行设置,而且全局时钟缓存扇出必须低于 2000 个负载。 注释: 当与其他时钟约束配合…...
RabbitMQ模块新增消息转换器
文章目录 1.目录结构2.代码1.pom.xml 排除logging2.RabbitMQConfig.java3.RabbitMQAutoConfiguration.java 1.目录结构 2.代码 1.pom.xml 排除logging <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/PO…...
SpringBoot 使用海康 SDK 和 flv.js 显示监控画面
由于工作需要将海康监控的画面在网页上显示,经过查找资料最终实现了。过程中发现网上的资料都不怎么完整,没办法直接用,所以记录一下,也帮后人避避坑。我把核心代码放到下面,完整工程放到码云上。完整工程带有前端页面…...
分析一个深度学习项目并设计算法和用PyTorch实现的方法和步骤
算法设计分析 明确问题类型 分类问题:例如图像分类,像判断一张图片是猫还是狗。算法设计可能会采用经典的卷积神经网络(CNN)结构,如ResNet、VGG等。以ResNet为例,其通过残差连接解决了深层网络训练时梯度…...
大模型训练策略与架构优化实践指南
标题:大模型训练策略与架构优化实践指南 文章信息摘要: 该分析全面探讨了大语言模型训练、架构选择、部署维护等关键环节的优化策略。在训练方面,强调了pre-training、mid-training和post-training的不同定位与目标;在架构选择上…...
机器学习:支持向量机
支持向量机(Support Vector Machine)是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的广义线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。 假设两类数据可以被 H x : w T x…...
Spring Boot(6)解决ruoyi框架连续快速发送post请求时,弹出“数据正在处理,请勿重复提交”提醒的问题
一、整个前言 在基于 Ruoyi 框架进行系统开发的过程中,我们常常会遇到各种有趣且具有挑战性的问题。今天,我们就来深入探讨一个在实际开发中较为常见的问题:当连续快速发送 Post 请求时,前端会弹出 “数据正在处理,请…...
「 机器人 」扑翼飞行器控制的当前挑战与后续潜在研究方向
前言 在扑翼飞行器设计与控制方面,虽然已经取得了显著的进步,但在飞行时间、环境适应性、能量利用效率及模型精度等方面依旧存在亟待解决的挑战。以下内容概括了这些挑战和可能的改进路径。 1. 当前挑战 1.1 飞行时间短 (1)主要原因 能源存储有限(电池容量小)、驱动系…...
2023年版本IDEA复制项目并修改端口号和运行内存
2023年版本IDEA复制项目并修改端口号和运行内存 1 在idea中打开server面板,在server面板中选择需要复制的项目右键,点击弹出来的”复制配置…(Edit Configuration…)“。如果idea上没有server面板或者有server面板但没有springbo…...
Spring Boot中如何实现异步处理
在 Spring Boot 中实现异步处理可以通过使用 Async 注解和 EnableAsync 注解来实现。以下是如何配置和使用异步处理的步骤和示例代码。 步骤: 启用异步支持: 在 Spring Boot 配置类上使用 EnableAsync 注解启用异步处理。使用 Async 注解异步方法&…...
微信小程序怎么制作自己的小程序?手把手带你入门(适合新手小白观看)
对于初学者来说,制作一款微信小程序总感觉高大上,又害怕学不会。不过,今天我就用最简单、最有耐心的方式,一步一步给大家讲清楚!让你知道微信小程序的制作,居然可以这么轻松(希望你别吓跑啊!)。文中还加了实战经验&…...
