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,建一个用户登录,即可。