当前位置: 首页 > article >正文

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

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

  • 写在前面
  • 准备安装jira
    • 第一次的记录
    • 第二次成功的记录
      • 环境要求
      • 使用 docker-compose 启动 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

其实试了几次,

第一次的记录

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

第二次成功的记录

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

环境要求

  • docker: 17.09.0+
  • docker-compose: 1.24.0+

使用 docker-compose 启动 jira

  • 启动 jira & mysql
    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.0
    host=mysql-jira
    port=3306
    db=jira
    user=root
    passwd=123456
  • 然后配置你的数据库

破解 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

上面写得很清楚了。

具体操作

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

得到images

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

原始的docker-compose.yml

version: '3.4'
services:
  jira:
    image: haxqer/jira:9.17.5
    container_name: jira-srv
    environment:
      - TZ=Asia/Shanghai
#      - JVM_MINIMUM_MEMORY=1g
#      - JVM_MAXIMUM_MEMORY=12g
#      - JVM_CODE_CACHE_ARGS='-XX:InitialCodeCacheSize=1g -XX:ReservedCodeCacheSize=8g'
    depends_on:
      - mysql
    ports:
      - "8080:8080"
    volumes:
      - home_data:/var/jira
    restart: always
    networks:
      - network-bridge

  mysql:
    image: mysql:8.0
    container_name: mysql-jira
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_DATABASE=jira
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_USER=jira
      - MYSQL_PASSWORD=123123
    command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_bin']
#    ports:
#      - "13306:3306"
    volumes:
      - mysql_data:/var/lib/mysql
    restart: always
    networks:
      - network-bridge

networks:
  network-bridge:
    driver: bridge

volumes:
  home_data:
    external: false
  mysql_data:
    external: false

原始的docker-compose.yml 的解读

我们只挑重点:

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
将需要改变的目录的权限进行改变。

改进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.

第二版的docker-compose.yml

version: '3.4'
services:
  jira:
    image: haxqer/jira:9.17.5
    container_name: jira-srv
    environment:
      - TZ=Asia/Shanghai
#      - JVM_MINIMUM_MEMORY=1g
#      - JVM_MAXIMUM_MEMORY=12g
#      - JVM_CODE_CACHE_ARGS='-XX:InitialCodeCacheSize=1g -XX:ReservedCodeCacheSize=8g'
    depends_on:
      - mysql
    ports:
      - "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:/etc
    restart: always
    networks:
      - network-bridge

  mysql:
    image: mysql:8.0
    container_name: mysql-jira
    environment:
      - TZ=Asia/Shanghai
      - MYSQL_DATABASE=jira
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_USER=jira
      - MYSQL_PASSWORD=123123
    command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_bin']
#    ports:
#      - "13306:3306"
    volumes:
      - /data/jira-hax-719/mysql:/var/lib/mysql
    restart: always
    networks:
      - network-bridge

networks:
  network-bridge:
    driver: bridge

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

启动后的配置的相关问题

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

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


http://www.kler.cn/a/524726.html

相关文章:

  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.21 索引宗师:布尔索引的七重境界
  • SQL UCASE() 函数详解
  • 数字化转型-工具变量(2024.1更新)-社科数据
  • 代码随想录算法训练营第三十八天-动态规划-完全背包-279.完全平方数
  • Flutter_学习记录_基本组件的使用记录
  • 8639 折半插入排序
  • 学术方向选则与规划DeepSeek、ChatGPT和Kimi对比
  • 本地部署deepseek模型步骤
  • 回顾Maven
  • 科技巨头AI投资引领未来增长
  • Foundation 模态框
  • 《Foundation 起步》
  • AAAI2024论文解读|HGPROMPT Bridging Homogeneous and Heterogeneous Graphs
  • 寻找两个正序数组的中位数:分治法与二分查找的结合
  • (1)Linux高级命令简介
  • c++ map/multimap容器 学习笔记
  • 前端表单验证终极指南:HTML5 内置验证 + JavaScript 自定义校验
  • Brave132 编译指南 Windows 篇:部署 Node.js(五)
  • vue 无法 局域网内访问
  • 【matlab】绘图 离散数据--->连续函数
  • 2025年加密AI十大预测:从Bittensor复兴到AI Agent崛起
  • 将ollama迁移到其他盘(eg:F盘)
  • 爬虫基础(二)Web网页的基本原理
  • shell脚本批量修改文件名之方法(The Method of Batch Modifying File Names in Shell Scripts)
  • Android开发入门
  • 【华为OD-E卷 - 转骰子 100分(python、java、c++、js、c)】