Giter Site home page Giter Site logo

docker-confluence's Introduction

Confluence

Confluence是一个专业的企业知识管理与协同软件,也可以用于构建企业wiki。使用简单,但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息、文档协作、集体讨论,信息推送

数据库设置

不建议将数据库部署在Docker容器,推荐使用云数据库或者物理机数据库。

文档

Confluence Data Center and Server documentation

Database Configuration

数据库设置

选择安装的Confluence版本,阅读Database Setup For MySQL后,修改Mysql配置文件,本文以Mysql 8.0为例

[mysqld]
...
character-set-server=utf8mb4 
collation-server=utf8mb4_bin
default-storage-engine=INNODB
max_allowed_packet=256M 
innodb_log_file_size=2GB
transaction-isolation=READ-COMMITTED
binlog_format=row
log-bin-trust-function-creators = 1
// 如果为Mysql5.7,关闭derived_merge能优化仪表板加载缓慢
optimizer_switch = derived_merge=off
...

如果sql_mode = NO_AUTO_VALUE_ON_ZERO,请删除此选项

创建数据库&用户

  • 创建数据库
CREATE DATABASE <database-name> CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
  • 创建用户
CREATE user '<confluenceuser>'@'localhost' IDENTIFIED BY '<password>';

如果 Confluence 与数据库不在同一台服务器上运行(或者是Docker用户),请用 Confluence 服务器的主机名或 IP 地址替换 localhost(也可以使用%,表示允许所有host)

  • 授权
GRANT ALL PRIVILEGES ON <database-name>.* TO '<confluenceuser>'@'localhost' WITH GRANT OPTION;

Docker Compose

文档

镜像:atlassian/confluence-server

破解插件:atlassian-agent

准备工具

破解插件

atlassian-agent.jar 也可以直接使用仓库内atlassian-agent.jar

数据库驱动

官方镜像并没有内置MySQL driver,需要自行下载:Database JDBC Drivers

Mysql 8.0 下载:mysql-connector-java-8.0.22.jar

Mysql 5.7 下载:mysql-connector-java-5.1.48.jar

docker-compose.yml

version: '3'
services:
    confluence:
        image: "atlassian/confluence-server"
        volumes: 
            - ./atlassian-agent.jar:/var/atlassian/atlassian-agent.jar
            - ./mysql-connector-java-8.0.22.jar:/opt/atlassian/confluence/confluence/WEB-INF/lib/mysql-connector-java-8.0.22.jar
            - /your-confluence-home:/var/atlassian/application-data/confluence
        environment:
            - JAVA_OPTS="-javaagent:/var/atlassian/atlassian-agent.jar"
            - JVM_MINIMUM_MEMORY=2048m
            - JVM_MAXIMUM_MEMORY=2048m
            - JVM_RESERVED_CODE_CACHE_SIZE=512m
        ports: 
            - "8090:8090"
        restart: always

默认内存分配为1024m,如果需要覆盖 Confluence Server 的默认内存分配,可以通过环境变量JVM_MINIMUM_MEMORYJVM_MAXIMUM_MEMORYJVM_RESERVED_CODE_CACHE_SIZE 控制最小堆(Xms)和最大堆(Xmx)。

运行

docker-compose up -d

查看日志,发现========= agent working =========则插件正常运行

初始化配置

破解

复制 Server ID BT5W-KP7Q-31DT-PTNG,使用容器内的Java环境,进入存放atlassian-agent.jar目录,运行下方命令生成Key

java -jar atlassian-agent.jar -d -m [email protected] -n BAT -p 'conf' -o http://localhost:8090 -s BT5W-KP7Q-31DT-PTNG

设置数据库

这里使用的宿主机搭建的Mysql 8.0,一路下一步即可

查看授权细节

插件破解

第三方插件将其应用密钥/插件关键字作为-p参数。如:-p 'com.valiantys.spreadsheets'

java -jar atlassian-agent.jar -d -m [email protected] -n BAT -p 'com.valiantys.spreadsheets' -o http://localhost:8090 -s BDMK-KXF1-H7GV-F7QG

查找新应用,选择你想要的应用插件,点击免费使用,点击接受&安装,进入管理应用页面,粘贴生成的许可证,点击更新完成破解

JIRA

JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。

Jira搭建流程和Confluence类似,这里不再赘述,附上相关内容

文档

Jira Software Data Center and Server documentation

Connecting Jira applications to a database

破解命令

java -jar atlassian-agent.jar -d -m [email protected] -n BAT -p 'jira' -o http://localhost:8080 -s BT5W-KP7Q-31DT-PTNG

配置Confluence与Jira用户数据对接

进入Jira选择用户管理 > Jira用户服务器 > 添加应用程序

进入Confluence > 用户管理 > 用户目录 > 添加目录(目录类型为:Atlassian Jira)

将JIRA Server 顺序顶置最上,点击同步即可将Jira用户信息同步到Confluence

如果是通过备份还原的Jira及Confluence可以直接禁用之前的用户目录然后移除。其他应用程序关联等设置比较简单,自行操作。

异常记录

  • Confluence重启后一段时间内无响应
confluence_1 | WARNING: An illegal reflective access operation has occurred
confluence_1 | WARNING: Illegal reflective access by com.atlassian.hibernate.adapter.proxy.BytecodeProviderImpl_ImplementV2Proxy (file:/opt/atlassian/confluence/confluence/WEB-INF/lib/hibernate.adapter-1.0.3.jar) to field java.lang.reflect.Field.modifiers
confluence_1 | WARNING: Please consider reporting this to the maintainers of com.atlassian.hibernate.adapter.proxy.BytecodeProviderImpl_ImplementV2Proxy
confluence_1 | WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
confluence_1 | WARNING: All illegal access operations will be denied in a future release
confluence_1 | Security framework of XStream not explicitly initialized, using predefined black list on your own risk.

类似问题:

https://community.atlassian.com/t5/Confluence-questions/Confluence-no-longer-responds-Debugging-articles/qaq-p/1404597

https://community.atlassian.com/t5/Confluence-questions/Illegal-reflective-access-by-BytecodeProviderImpl/qaq-p/1255035

https://community.atlassian.com/t5/Confluence-questions/hibernate-adapter-1-0-3-jar/qaq-p/1281057

结论:

  • 等待一段时间会自动运行正常
  • 非法反射访问错误是Java9添加的,所以尝试在Java8上运行Confluence,不过官方最新镜像都是Java11了!

docker-confluence's People

Contributors

munding avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

docker-confluence's Issues

运行了一会整个主机死机

老师你好,我尝试了三次,前面2次拉的7.12.5镜像,在安装过程在不同阶段(数据库建表、管理员账号建设)发现主机死机,第三次拉的7.4.11镜像,安装成功,在实验插件的时候,安装插件完成,点击插件管理查看插件信息时,整个主机死机了。我看了日志停留为以下,看服务器资源信息,发现cpu还好,内存占比85%(总共4G内存),IO读比较高达到111416.981KB/S,发现死机的点附近突然升高,请帮忙看下有可能是什么原因,十分感谢!
2022-05-06 23:10:00,068 ERROR [Caesium-1-1] [impl.schedule.caesium.JobRunnerWrapper] runJob Scheduled job com.atlassian.confluence.plugins.confluence-notifications-batch-plugin:batchingJob#batchingJobConfig failed to run
-- referer: http://(url马赛克)/setup/setupdata-start.action | url: /setup/setupdata.action | traceId: 955881b009abb4fc | userName: anonymous | action: setupdata
com.atlassian.activeobjects.internal.ActiveObjectsInitException: bundle [com.atlassian.confluence.plugins.confluence-notifications-batch-plugin]
at com.atlassian.activeobjects.osgi.TenantAwareActiveObjects$1$1$1.call(TenantAwareActiveObjects.java:95)
at com.atlassian.activeobjects.osgi.TenantAwareActiveObjects$1$1$1.call(TenantAwareActiveObjects.java:86)
at com.atlassian.sal.core.executor.ThreadLocalDelegateCallable.call(ThreadLocalDelegateCallable.java:38)
at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContextInternal(VCacheRequestContextManager.java:84)
at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContext(VCacheRequestContextManager.java:68)
at com.atlassian.confluence.vcache.VCacheRequestContextOperations.lambda$withRequestContext$1(VCacheRequestContextOperations.java:59)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.RuntimeException: Could not read fields for table AO_88BB94_BATCH_NOTIFICATION
at net.java.ao.schema.helper.DatabaseMetaDataReaderImpl.getFields(DatabaseMetaDataReaderImpl.java:141)
at net.java.ao.schema.ddl.SchemaReader.readFields(SchemaReader.java:126)
at net.java.ao.schema.ddl.SchemaReader.readTable(SchemaReader.java:110)
at net.java.ao.schema.ddl.SchemaReader.access$000(SchemaReader.java:62)
at net.java.ao.schema.ddl.SchemaReader$1.apply(SchemaReader.java:99)
at net.java.ao.schema.ddl.SchemaReader$1.apply(SchemaReader.java:97)
at com.google.common.collect.Iterators$6.transform(Iterators.java:785)
at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:47)
at com.google.common.collect.Iterators.addAll(Iterators.java:358)
at com.google.common.collect.Lists.newArrayList(Lists.java:147)
at com.google.common.collect.Lists.newArrayList(Lists.java:133)
at net.java.ao.schema.ddl.SchemaReader.readSchema(SchemaReader.java:97)
at net.java.ao.schema.ddl.SchemaReader.readSchema(SchemaReader.java:88)
at net.java.ao.schema.ddl.SchemaReader.readSchema(SchemaReader.java:81)
at net.java.ao.schema.SchemaGenerator.generateImpl(SchemaGenerator.java:107)
at net.java.ao.schema.SchemaGenerator.migrate(SchemaGenerator.java:84)
at net.java.ao.EntityManager.migrate(EntityManager.java:131)
at com.atlassian.activeobjects.internal.EntityManagedActiveObjects.migrate(EntityManagedActiveObjects.java:52)
at com.atlassian.activeobjects.internal.AbstractActiveObjectsFactory.lambda$create$0(AbstractActiveObjectsFactory.java:73)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(HostContextTransactionTemplate.java:21)
at com.atlassian.sal.spring.component.SpringHostContextAccessor.lambda$doInTransaction$0(SpringHostContextAccessor.java:70)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
at com.atlassian.sal.spring.component.SpringHostContextAccessor.doInTransaction(SpringHostContextAccessor.java:68)
at com.atlassian.confluence.spring.transaction.interceptor.ConfluenceSpringHostContextAccessor.access$001(ConfluenceSpringHostContextAccessor.java:21)
at com.atlassian.confluence.spring.transaction.interceptor.ConfluenceSpringHostContextAccessor.lambda$doInTransaction$3(ConfluenceSpringHostContextAccessor.java:72)
at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContextInternal(VCacheRequestContextManager.java:84)
at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContext(VCacheRequestContextManager.java:68)
at com.atlassian.confluence.spring.transaction.interceptor.ConfluenceSpringHostContextAccessor.doInTransaction(ConfluenceSpringHostContextAccessor.java:72)
at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContextTransactionTemplate.java:18)
at jdk.internal.reflect.GeneratedMethodAccessor325.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at com.sun.proxy.$Proxy338.execute(Unknown Source)
at jdk.internal.reflect.GeneratedMethodAccessor325.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
at com.sun.proxy.$Proxy1212.execute(Unknown Source)
at com.atlassian.activeobjects.internal.AbstractActiveObjectsFactory.create(AbstractActiveObjectsFactory.java:70)
at com.atlassian.activeobjects.internal.DelegatingActiveObjectsFactory.create(DelegatingActiveObjectsFactory.java:32)
at com.atlassian.activeobjects.osgi.TenantAwareActiveObjects$1$1$1.call(TenantAwareActiveObjects.java:91)
... 9 more
Caused by: java.sql.SQLSyntaxErrorException: Table 'confluence_7411_2.AO_88BB94_BATCH_NOTIFICATION' doesn't exist
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeQuery(ClientPreparedStatement.java:972)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:431)
at net.java.ao.schema.helper.DatabaseMetaDataReaderImpl.getResultSetMetaData(DatabaseMetaDataReaderImpl.java:271)
at net.java.ao.schema.helper.DatabaseMetaDataReaderImpl.getFields(DatabaseMetaDataReaderImpl.java:91)
... 65 more
2022-05-06 23:10:00,072 WARN [Caesium-1-1] [impl.schedule.caesium.JobRunnerWrapper] runJob Scheduled job com.atlassian.confluence.plugins.confluence-notifications-batch-plugin:batchingJob#batchingJobConfig completed unsuccessfully with response JobRunnerResponse[runOutcome=FAILED,message='ActiveObjectsInitException: bundle [com.atlassian.confluence.plugins.confluence-notifications-batch-plugin]
RuntimeException: Could not read fields for table AO_88BB94_BATCH_NOTIFICATION
SQLSyntaxErrorException: Table 'confluence_7411_2.AO_88BB94_BATCH_NO']
-- referer: http://(我的url)/setup/setupdata-start.action | url: /setup/setupdata.action | traceId: 955881b009abb4fc | userName: anonymous | action: setupdata

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.