Synology 群辉NAS安装(9)安装jira

server/2025/2/2 11:48:39/

Synology 群辉NAS安装(9)安装jira

  • 写在前面
  • 准备安装jira
    • 第一次的记录
    • 第二次成功的记录
  • 具体操作
    • 下代码和第一次docker-compse up以获取images
      • 得到images
      • 原始的docker-compose.yml
      • 原始的docker-compose.yml 的解读
        • haxqer/jira:9.17.5 , 这个很重要。
        • image: mysql:8.0 这个版本也重要
        • networks
        • volumes
      • 第一次的配置和结果
    • 改进docker-compose.yml之后重来
      • 第二版的docker-compose.yml
  • 启动后的配置的相关问题

写在前面

抱歉这个系列写得非常乱。大家将就看吧,因为我这也是中年毕业,事情比较多。
之前提到了装mssql,也装好了。
但这里并没有使用。我认为用它也没有问题。

关于安装mssql server 后的配置在这里:
Connecting Jira applications to SQL Server 2019
https://confluence.atlassian.com/adminjiraserver103/connecting-jira-applications-to-sql-server-2019-1489806924.html

jira_11">准备安装jira

其实试了几次,

第一次的记录

第一次是这个:
https://www.jianshu.com/p/e747b5ab91cd
但没有完全成功。
似乎是可以的,最终只是目录的属性没有改对。这个一会我们会提到。
但这不是要点,要点是那个container中,没有agent***.jiar
个这agent是非常重要的,因为它是用于生成破解密匙的,这个我不说你也懂我在说什么。。。
不清楚怎么搞的,那个就没有。当然,也可能是下错了 image.

第二次成功的记录

然后我去了B站,在一个帖子的下面,找到有个人的回复。也可能上面的贴子?总之吧,在这里:
https://github.com/haxqer/jira/blob/rm/README_zh.md

环境要求

dockercompose__jira_30">使用 docker-compose 启动 jira

    git clone https://github.com/haxqer/jira.git \&& cd jira \&& git checkout rm \&& docker-compose pull \&& docker-compose up
  • 以守护进程的方式启动 jira & mysql
    docker-compose up -d
  • 默认的 数据库(mysql8.0) 配置:
    driver=mysql8.0host=mysql-jiraport=3306db=jirauser=rootpasswd=123456
  • 然后配置你的数据库

jira_63">破解 jira

docker exec jira-srv java -jar /var/agent/atlassian-agent.jar \-d \-p jira \-m Hello@world.com \-n Hello@world.com \-o your-org \-s you-server-id-xxxx

上面写得很清楚了。

具体操作

dockercompse_upimages_78">下代码和第一次docker-compse up以获取images

得到images

在这之前,请将Proxy配置好。。。这个您当然清楚了。这是github,而且,nas中的docker如果配proxy也是出不去的。
git clone得到代码之后,传到NAS上,当然,也可以在NAS上,配置好proxy,直接在那下。
然后docker-compose up
然后,经过一段时间的等待,mysql和jira的image就下载下来了。

dockercomposeyml_85">原始的docker-compose.yml

version: '3.4'
services:jira:image: haxqer/jira:9.17.5container_name: jira-srvenvironment:- TZ=Asia/Shanghai
#      - JVM_MINIMUM_MEMORY=1g
#      - JVM_MAXIMUM_MEMORY=12g
#      - JVM_CODE_CACHE_ARGS='-XX:InitialCodeCacheSize=1g -XX:ReservedCodeCacheSize=8g'depends_on:- mysqlports:- "8080:8080"volumes:- home_data:/var/jirarestart: alwaysnetworks:- network-bridgemysql:image: mysql:8.0container_name: mysql-jiraenvironment:- TZ=Asia/Shanghai- MYSQL_DATABASE=jira- MYSQL_ROOT_PASSWORD=123456- MYSQL_USER=jira- MYSQL_PASSWORD=123123command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_bin']
#    ports:
#      - "13306:3306"volumes:- mysql_data:/var/lib/mysqlrestart: alwaysnetworks:- network-bridgenetworks:network-bridge:driver: bridgevolumes:home_data:external: falsemysql_data:external: false

dockercomposeyml__135">原始的docker-compose.yml 的解读

我们只挑重点:

jira9175___137">haxqer/jira:9.17.5 , 这个很重要。

事实上,也可以根据这个名字,在DSM的registry中来获得。
为什么说这个很重要的原因,是从这个registry得到的image中,包含上述的agent_xxx.jar
否则,我们到网上找,很可能版本不匹配,而且也不好找。

image: mysql:8.0 这个版本也重要

如果手工下,要用这个版本。
mysql-connect***.jar的匹配,也是个大难题。
所以,我之前说如果有可能,还是用mssql或是oracle

networks

networks:
network-bridge:
driver: bridge
这项当然也非常重要。这个compose中有两个container,这个网络保证他们能互通。可以类比一下,compose相当于k8s中的pod。
这个特性后面我们用到了,因为在一个Pod中,所以,就相当于连一个hub上,所以这两个container是可以互通的。

volumes

volumes:
home_data:
external: false
mysql_data:
external: false
上面这段是说,卷不导出。由docker来管理,这个一会我们再说。但显然,我几次失败,都是因为忘了去卷里的目录用
chmod 777 -R ./*
来消除权限,而出错。

第一次的配置和结果

第一次没有成功,但也收获很多。因为已到了jira配置的界面,只是报目录 /var/jira 不能写入。
1。 images得到了。
2。 知道问题与映射的目录的权限有关。

解决/var/jira不能写入的问题。
第一个问题是找到volume在哪里。

我们先列一下,这些volume有哪些:
docker volume list

root@DS220plus:/var/opt/software/jira# docker volume list
DRIVER    VOLUME NAME
local     6a902a47d3f70a1ddfc849c16a100e4af35701d08fe759fb5928dadae4824977
local     a8d15a28e758ba80785c33961a051623de4238b1271753dad34cf94c4188a68a
local     d738b5e4880a786bf4bced91e1a9a90b55fcd72390ad0ffbe5b165cc3dad1e16
local     jira_home_data
local     jira_mysql_data

然后利用inspect指令,找他们的位置

root@DS220plus:/var/opt/software/jira# docker volume inspect jira_home_data
[{"CreatedAt": "2025-01-27T21:51:29+08:00","Driver": "local","Labels": {"com.docker.compose.project": "jira","com.docker.compose.version": "1.27.4","com.docker.compose.volume": "home_data"},"Mountpoint": "/volume1/@docker/volumes/jira_home_data/_data","Name": "jira_home_data","Options": null,"Scope": "local"}
]

然后去这里:
/volume1/@docker/volumes/jira_home_data/_data
将需要改变的目录的权限进行改变。

dockercomposeyml_202">改进docker-compose.yml之后重来

删除了第一次的containers之后,注意只是删了容器,不要删除image,好不容易下下来的。
以前我提到过docker-compose在处理volumn时,有时会出错。
这是因为它很难处理几件事:如果docker-compose.yml发生了,会导致container重建的修改后,它很难保护置于docker控制之下的volumn;
docker-compose是否重新build docker container这个事本身,是难以捉摸的。
最重要的bug来自于,如果多个不相关的docker-compose,使用了相同的命令的volumn, 会出现意想不到的结果。
特别是权限。
事实上,如果我们不用root用户,container中的用户,需要与host中的对应的用户,名称和ID,以及group id,都要一样,这需要非常谨慎和复杂的操作。当然用root没问题,但以jira为例,我们进入container后发现,用的是一个id=999的jira用户。这个999与主机的DSM与后同步的那个最关键的后台账户是一个。一定会出问题。

所以,我想了一下,决定将这些卷,自己来控制,不再交由docker.

dockercomposeyml_212">第二版的docker-compose.yml

version: '3.4'
services:jira:image: haxqer/jira:9.17.5container_name: jira-srvenvironment:- TZ=Asia/Shanghai
#      - JVM_MINIMUM_MEMORY=1g
#      - JVM_MAXIMUM_MEMORY=12g
#      - JVM_CODE_CACHE_ARGS='-XX:InitialCodeCacheSize=1g -XX:ReservedCodeCacheSize=8g'depends_on:- mysqlports:- "8080:8080"volumes:- /data/jira-hax-719/jira/var/jira:/var/jira- /data/jira-hax-719/jira/opt/jira:/opt/jira- /data/jira-hax-719/jira/etc:/etcrestart: alwaysnetworks:- network-bridgemysql:image: mysql:8.0container_name: mysql-jiraenvironment:- TZ=Asia/Shanghai- MYSQL_DATABASE=jira- MYSQL_ROOT_PASSWORD=123456- MYSQL_USER=jira- MYSQL_PASSWORD=123123command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_bin']
#    ports:
#      - "13306:3306"volumes:- /data/jira-hax-719/mysql:/var/lib/mysqlrestart: alwaysnetworks:- network-bridgenetworks:network-bridge:driver: bridge

手工建好这些目录后,我将它们chmod为777
/data/jira-hax-719/jira/
然后开始安装,一路走完了全程。

启动后的配置的相关问题

在这里插入图片描述
如上图,这样来配置。
注意Hostname,为,mysql

如果报超时,点sign up,建一个用户登录,即可。


http://www.ppmy.cn/server/164325.html

相关文章

AtCoder Beginner Contest 391(ABCDE)

A - Lucky Direction 翻译: 给你一个字符串 D,代表八个方向(北、东、西、南、东北、西北、东南、西南)之一。方向与其代表字符串之间的对应关系如下。 北: N东: E西: W南: S东…

Python 数据分析 - 初识 Pandas

Python 数据分析 - 初识 Pandas 简介SeriesDataFrame创建基本操作添加删除 简介 Pandas 基于 NumPy 开发,它提供了快速、灵活、明确的数据结构,旨在简单、直观地处理数据。 Pandas 适用于处理以下类型的数据: 有序和无序的时间序列数据带行…

java 字符串日期字段格式化前端显示

在 Java 应用程序中,如果你有一个字符串类型的日期字段,并希望将其格式化后显示在前端,可以通过多种方式实现。这通常涉及到在后端将字符串转换为 Date 或 LocalDateTime 等对象,然后使用适当的注解或配置来确保它们以正确的格式序…

5 个开源且免费的提示词管理系统,按照 从优到劣 排序

1. PromptSource 研发背景: 国家: 国际协作(主要由美国和欧洲团队主导)。 团队: BigScience Workshop,一个由 Hugging Face 和多个研究机构共同支持的开源社区。 简介: 专注于创建、管理和共享提示词模板。 特点: 提供 Web 界面&#xff…

【Elasticsearch 】悬挂索引(Dangling Indices)

Elasticsearch 悬挂索引(Dangling Indices)解析与管理 1. 悬挂索引的定义 悬挂索引(Dangling Indices)是指存在于节点上但未被集群元数据识别的索引分片。这些索引分片不会参与到集群的正常索引操作中。 2. 悬挂索引的产生原因…

build报错:Your build is currently configured to use incompatible Java 21.0.3 and Gradle 5.4.1Cannot...

报错显示 报错如图。 报错原因 JDK和gradle版本不一致。 成功解决方案 将jdk版本改为1.8,问题解决。 尝试过未成功的方案 升级gradle版本,升级后报错如下。

二、CSS笔记

(一)css概述 1、定义 CSS是Cascading Style Sheets的简称,中文称为层叠样式表,用来控制网页数据的表现,可以使网页的表现与数据内容分离。 2、要点 怎么找到标签怎么操作标签对象(element) 3、css的四种引入方式 3.1 行内式 在标签的style属性中设定CSS样式。这种方…

图书管理系统 Axios 源码 __删除图书功能

目录 代码实现(index.js) 代码解析 使用方法 下面是完整的删除图书功能代码,基于 HTML Bootstrap JavaScript Axios 开发。 代码实现(index.js) // 删除图书功能 document.querySelector(.list).addEventListen…