Alfresco Content Services dockerCompose自动化部署详尽操作

Alfresco Content Services docker社区部署文档

Alfresco Content Services简介

官方说明书

https://support.hyland.com/r/Alfresco/Alfresco-Content-Services-Community-Edition/23.4/Alfresco-Content-Services-Community-Edition/Using/Content/Folder-rules/Defining-rules-for-a-folder/Creating-a-simple-workflow

Alfresco Content Services(简称ACS)是一款功能完备的企业内容管理(ECM)解决方案,主要面向那些对企业级内容管理有高要求的组织。具体如下:

  1. 核心优势:具备企业级的可扩展性、高性能,用于管理企业关键业务内容并确保合规性。这意味着企业在业务规模不断扩大、内容数据量持续增长的情况下,Alfresco Content Services能稳定高效运行,同时时刻满足企业在数据安全、法规遵循等方面的要求。
  2. 主要用途:可应用于多种场景。包括内容和治理服务,帮助企业管理内容的整个生命周期,从创建、存储到最终删除,确保符合法规和企业内部政策;支持上下文搜索和洞察,用户能基于内容的上下文关系进行精准搜索,挖掘有价值的信息;还能轻松与其他应用集成,打破信息孤岛,提升企业整体业务流程的连贯性和效率。
  3. 关键能力:围绕内容管理提供丰富的功能。在文档管理方面,实现文档的存储、版本控制、权限设置等基础操作;支持文档扫描和捕获,便于将纸质文档转化为数字化信息纳入管理体系;企业协作功能促进团队成员间的协同工作,共同处理和编辑文档;信息治理保障企业信息资产的安全合规;智能分析和洞察则通过对内容的深入挖掘,为企业决策提供数据支持。

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

在这里插入图片描述

将192.168.10.180替换成你的IP!然后访问http://192.168.10.180:8080/share/ admin admin

# This Docker Compose file will spin up an ACS community installation on a local host.
# It requires at least 6GB of memory available to distribute among containers.
#
# For performance tuning, increase each container mem_limit and give a percentage of
# it to the JVM. Use either the -Xms,-Xmx flags or the newly added flags in
# java 10+: -XX:MaxRAMPercentage and -XX:MinRAMPercentage.
# More details here:
# https://www.oracle.com/technetwork/java/javase/10-relnote-issues-4108729.html
#
services:alfresco:image: docker.io/alfresco/alfresco-content-repository-community:23.4.0mem_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-Dsolr.host=solr6-Dsolr.port=8983-Dsolr.http.connection.timeout=1000-Dsolr.secureComms=secret-Dsolr.sharedSecret=secret-Dsolr.base.url=/solr-Dindex.subsystem.name=solr6-Dshare.host=localhost-Dshare.port=8080-Dalfresco.host=localhost-Dalfresco.port=8080-Dcsrf.filter.enabled=false-Daos.baseUrlOverwrite=http://192.168.10.180:8080/alfresco/aos-Dmessaging.broker.url="failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true"-Ddeployment.method=DOCKER_COMPOSE-DlocalTransform.core-aio.url=http://192.168.10.180:8090/-XX:MinRAMPercentage=50-XX:MaxRAMPercentage=80healthcheck:test: ["CMD", "curl", "-f", "http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/probes/-ready-"]interval: 30stimeout: 3sretries: 5start_period: 1mlabels:- "traefik.enable=true"- "traefik.http.routers.alfresco.rule=PathPrefix(`/`)"- "traefik.http.services.alfresco.loadbalancer.server.port=8080"- "traefik.http.routers.solrapideny.rule=PathRegexp(`^/alfresco/(wc)?s(ervice)?/api/solr/.*$`)"- "traefik.http.middlewares.acsfakeauth.basicauth.users=fake:"- "traefik.http.routers.solrapideny.middlewares=acsfakeauth@docker"transform-core-aio:image: alfresco/alfresco-transform-core-aio:5.1.5mem_limit: 1536menvironment:JAVA_OPTS: >--XX:MinRAMPercentage=50-XX:MaxRAMPercentage=80ports:- "8090:8090"healthcheck:test: ["CMD", "curl", "-f", "http://localhost:8090/ready"]interval: 20stimeout: 2sretries: 3start_period: 10sdepends_on:activemq:condition: service_healthyshare:image: docker.io/alfresco/alfresco-share:23.4.0mem_limit: 1genvironment:CSRF_FILTER_ORIGIN: http://192.168.10.180:8080CSRF_FILTER_REFERER: http://192.168.10.180:8080/share/.*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=httphealthcheck:test: ["CMD", "curl", "-f", "http://localhost:8080/share"]interval: 20stimeout: 2sretries: 3start_period: 15sdepends_on:alfresco:condition: service_healthylabels:- "traefik.enable=true"- "traefik.http.routers.share.rule=PathPrefix(`/share`)"- "traefik.http.services.share.loadbalancer.server.port=8080"- "traefik.http.routers.proxiedsolrapideny.rule=PathRegexp(`^/share/proxy/alfresco(-(noauth|feed|api))?/api/solr/`)"- "traefik.http.middlewares.sharefakeauth.basicauth.users=fake:"- "traefik.http.routers.proxiedsolrapideny.middlewares=sharefakeauth@docker"postgres:image: postgres:13mem_limit: 512menvironment:- POSTGRES_PASSWORD=alfresco- POSTGRES_USER=alfresco- POSTGRES_DB=alfrescocommand: postgres -c max_connections=300 -c log_min_messages=LOGports:- "5432:5432"healthcheck:test: ["CMD-SHELL", "pg_isready -d $$POSTGRES_DB -U $$POSTGRES_USER"]interval: 10stimeout: 3sretries: 3start_period: 5ssolr6:image: docker.io/alfresco/alfresco-search-services:2.0.13mem_limit: 2genvironment:# Solr needs to know how to register itself with AlfrescoSOLR_ALFRESCO_HOST: "alfresco"SOLR_ALFRESCO_PORT: "8080"# Alfresco needs to know how to call solrSOLR_SOLR_HOST: "solr6"SOLR_SOLR_PORT: "8983"# Create the default alfresco and archive coresSOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive"# HTTPS or SECRETALFRESCO_SECURE_COMMS: "secret"# SHARED SECRET VALUEJAVA_TOOL_OPTIONS: >--Dalfresco.secureComms.secret=secretports:- "8083:8983" # Browser portactivemq:image: alfresco/alfresco-activemq:5.18-jre17-rockylinux8mem_limit: 1gports:- "8161:8161" # Web Console- "5672:5672" # AMQP- "61616:61616" # OpenWire- "61613:61613" # STOMPhealthcheck:test: ["CMD", "/opt/activemq/bin/activemq", "query", "--objname", "type=Broker,brokerName=*,service=Health", "|", "grep", "Good"]interval: 10stimeout: 5sretries: 5start_period: 5scontent-app:image: alfresco/alfresco-content-app:5.2.0mem_limit: 128menvironment:APP_BASE_SHARE_URL: "http://192.168.10.180:8080/aca/#/preview/s"healthcheck:test: ["CMD", "curl", "-f", "http://localhost:8080/"]interval: 10stimeout: 1sretries: 3start_period: 1slabels:- "traefik.enable=true"- "traefik.http.routers.aca.rule=PathPrefix(`/content-app`)"- "traefik.http.middlewares.acaroot.stripprefix.prefixes=/content-app"- "traefik.http.middlewares.acaforceslash.redirectregex.regex=^(.*/content-app)$$"- "traefik.http.middlewares.acaforceslash.redirectregex.replacement=$${1}/"- "traefik.http.middlewares.acachain.chain.middlewares=acaforceslash,acaroot"- "traefik.http.routers.aca.middlewares=acachain@docker"control-center:image: quay.io/alfresco/alfresco-control-center:9.2.0mem_limit: 128menvironment:APP_CONFIG_PROVIDER: "ECM"APP_CONFIG_AUTH_TYPE: "BASIC"BASE_PATH: ./healthcheck:test: ["CMD", "curl", "-f", "http://localhost:8080/"]interval: 10stimeout: 1sretries: 3start_period: 1slabels:- "traefik.enable=true"- "traefik.http.routers.acc.rule=PathPrefix(`/control-center`) || PathPrefix(`/admin`)"- "traefik.http.middlewares.accroot.stripprefix.prefixes=/admin,/control-center"- "traefik.http.middlewares.accforceslash.redirectregex.regex=^(.*/(admin|control-center))$$"- "traefik.http.middlewares.accforceslash.redirectregex.replacement=$${1}/"- "traefik.http.middlewares.accchain.chain.middlewares=accforceslash,accroot"- "traefik.http.routers.acc.middlewares=accchain@docker"proxy:image: traefik:3.1mem_limit: 128mcommand:- "--api.insecure=true"- "--providers.docker=true"- "--entrypoints.web.address=:8080"- "--entryPoints.traefik.address=:8888"- "--accesslog=true"- "--providers.docker.exposedByDefault=false"- "--ping.entrypoint=web"- "--ping=true"ports:- "8080:8080"- "8888:8888"healthcheck:test: ["CMD", "traefik", "healthcheck", "--ping"]interval: 20stimeout: 10sretries: 3start_period: 10ssecurity_opt:- label=disable # Required for accessing the Docker socket on Selinux enabled systemsvolumes:- /var/run/docker.sock:/var/run/docker.sock:ro

将192.168.10.180替换成你的IP!然后访问http://192.168.10.180:8080/share/ admin admin

当服务运行时,您可以使用更多命令来浏览服务。 在运行这些之前,将目录更改为 docker-compose:
停止所有正在运行的容器:

 docker-compose stop

重新启动容器(使用 stop 命令后):

 docker-compose restart

启动使用 docker-compose 启动的容器 向上:

 docker-compose start

停止所有正在运行的容器,并删除它们和网络:

 docker-compose down --rmi all

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/68597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rust feature h和 workspace相关知识 (十一)

feature 相关作用和描述 在 Rust 中,features(特性) 是一种控制可选功能和依赖的机制。它允许你在编译时根据不同的需求启用或禁用某些功能,优化构建,甚至改变代码的行为。Rust 的特性使得你可以轻松地为库提供不同的…

【Python-办公自动化】实现自动化输出json数据类型的分析报告和正逆转换

分析报告 import json from pprint import pprint, PrettyPrinterdef analyze_energy_data(file_path):"""能源数据分析与结构查看函数参数:file_path (str): JSON文件路径功能:1. 加载并解析JSON数据2. 显示数据结构概览3. 交互式结构探索"""…

麒麟操作系统服务架构保姆级教程(十四)iptables防火墙四表五链和防火墙应用案例

如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 防火墙在运维工作中有着不可或缺的重要性。首先,它是保障网络安全的关键防线,通过设置访问控制规则,可精准过滤非法网络流量,有效阻挡外部黑客攻击、恶…

力扣25.k个一组翻转链表

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值&…

Midjourney基础-常用修饰词+权重的用法大全

用好修饰词很关键 Midjourney要用除了掌握好提示词的写法,按照上一篇《做Midjourney最好图文教程-提示词公式以及高级参数讲解》画面主体 场景氛围 主体行为 构图方式 艺术风格 图像质量。 要画出有质感的内容我们必须要掌握好“修饰词”,这些修饰…

钉钉群机器人设置——python版本

钉钉群机器人设置——python版本 应用场景钉钉界面操作程序开发效果展示 应用场景 由于工作需要,很多项目执行程序后出现报错信息无法第一时间收到,因此实时预警对于监控程序还是有必要。(仅个人观点) 参考文档及博客&#xff1a…

doris:异常数据处理

在导入过程中,源数据列与目标列的数据类型可能存在不一致的情况。导入过程会对这些类型不一致的数据进行转换,但在转换过程中可能会出现字段类型不匹配、字段超长、精度不匹配等问题,从而导致转换失败。 为了处理这些异常情况,Do…

小白爬虫冒险之反“反爬”:无限debugger、禁用开发者工具、干扰控制台...(持续更新)

背景浅谈 小白踏足JS逆向领域也有一年了,对于逆向这个需求呢主要要求就是让我们去破解**“反爬机制”**,即反“反爬”,脚本处理层面一般都是decipher网站对request设置的cipher,比如破解一个DES/AES加密拿到key。这篇文章先不去谈…

【Elasticsearch】中数据流需要配置索引模板吗?

是的,数据流需要配置索引模板。在Elasticsearch中,数据流(Data Streams)是一种用于处理时间序列数据的高级结构,它背后由多个隐藏的索引组成,这些索引被称为后备索引(Backing Indices&#xff0…

babylon.js-3:了解STL网格模型

网格模型上色 本篇文章主要介绍如何在 BabylonJS 中实现STL网格模型上色。 文章目录 网格模型上色运用场景概要延申正文加载器库的支持认识 OBJ 和 STL 文件GUI 色板选择器网格模型异步加载加载动画网格模型上色官方即将弃用 ImportMesh 而推荐使用 ImportMeshAsync 说明OBJ …

大数据治理实战:架构、方法与最佳实践

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 1. 引言 大数据治理是确保数据质量、合规性和安全性的重要手段,尤其在数据驱动决策和人工智能应用日益普及的背景下&…

【时时三省】(C语言基础)文件的随机读写

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 fseek 根据文件指针的位置和偏移量来定位文件指针 示例: 这个输出的就是ade seek_cur的意思是从当前偏移量 2就是从a往后偏移两个就是d 偏移量 SEEK_CUR…

均方误差(MSE)揭秘:预测模型的“真面目”

前言 在这个充满数据的世界里,我们需要各种方式来衡量一个模型的表现,尤其在回归问题中,均方误差(MSE)是我们非常常见的“好朋友”。它就像一位忠诚的侦探,默默为我们揭示预测值与实际值之间的真相。今天,让我们一起进入均方误差的世界,看看它是如何用简单却有效的方式…

yolov5错误更改与相关参数详解(train.py)

1.错误更改 main中相关参数 if __name__ __main__:parser argparse.ArgumentParser()parser.add_argument(--weights, typestr, default, helpinitial weights path)parser.add_argument(--cfg, typestr, defaultmodels/yolov5s.yaml, helpmodel.yaml path)parser.add_arg…

第4章 基于中点电流的NPC逆变器中点电压平衡策略

1. 工作原理 1.1 NPC型三电平逆变器工作原理 NPC型三相三电平逆变器有A、B、C三个桥臂,其组成结构是相同的,本章以A相为例,对其工作原理进行分析。开关器件SA1和SA3、SA2和SA4为互补器件,通过控制开关器件的导通和关断状态&#…

【C++】内联函数inline、关键字auto与新式for

内联函数 内联函数背景 我们在使用C语言中我们都学过函数,我们知道函数在调用的过程中需要开辟栈帧。如果我们需要频繁的调用一个函数,假设我们调用10次Add()函数,那我们就需要建立10次栈帧。我们都知道在栈帧中要做很多事情,例如…

【深度学习】图像分类数据集

图像分类数据集 MNIST数据集是图像分类中广泛使用的数据集之一,但作为基准数据集过于简单。 我们将使用类似但更复杂的Fashion-MNIST数据集。 %matplotlib inline import torch import torchvision from torch.utils import data from torchvision import transfo…

DeepSeek-R1:多阶段训练提升推理能力

标题:DeepSeek-R1:多阶段训练提升推理能力 文章信息摘要: DeepSeek-R1通过结合监督学习与强化学习的多阶段训练方法,显著提升了大型语言模型的推理能力,尤其在处理复杂数学问题时表现优异。该方法克服了纯强化学习模型…

以创新芯片技术助力科技发展

在当今数字化与智能化浪潮中,芯片作为现代科技的核心,正悄然推动着各个行业的变革。厦门国科安芯科技有限公司专注于高性能芯片的研发与创新,致力于为工业、汽车和商业航天等领域提供高效、可靠的解决方案。以下是国科安芯推出的几款具有代表…

【MySQL — 数据库增删改查操作】深入解析MySQL的 Retrieve 检索操作

Retrieve 检索 示例 1. 构造数据 创建表结构 create table exam1(id bigint, name varchar(20) comment同学姓名, Chinesedecimal(3,1) comment 语文成绩, Math decimal(3,1) comment 数学成绩, English decimal(3,1) comment 英语成绩 ); 插入测试数据 insert into ex…