前面两篇文章,介绍了Compose的基本用法,并给出了Nginx、MySQL、GitLab的具体示例,但是,都仅限单个容器的管理。本篇,要说说多个容器如何管理,以Jira为例。
一、环境准备
1、下载atlassian-agent
源出处为https://zhile.io/2018/12/20/atlassian-license-crack.html,Gitee和GitHub项目资源已不可见,好在文章末尾的百度网盘长期有效。下载,得到atlassian-agent-v1.3.1.zip,解压,里面有说明文件和需要的jar包。
提示:实在要该资源,可以在Gitee搜索atlassian-agent。
2、下载MySQL驱动
jira安装后,在初始化时,需要配置已有数据库链接,还需要用到驱动包,这里也要提前下载好。
下载方法有很多,比如你项目上应该就有。这里提供一种方式:新建一个Spring Boot项目,添加MySQL依赖,获取最新驱动。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.lewis.demo</groupId>
<artifactId>demo-mysql-connection</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3、目录设置
在一个空文件夹下,新建文件夹mysql、jira、libs,新建文件docker-compose.yml。
其中,mysql和jira,用于存放配置文件、日志文件、数据文件;将下载的两个jar包,存放在libs中,容器中要使用。
4、编写yml
编写yml文件,管理mysql和jira两个容器:
services:
mysql:
container_name: mysql
image: mysql:latest
restart: "no"
ports:
- 13306:3306
environment:
MYSQL_ROOT_PASSWORD: 123456
volumes:
- ./mysql/conf:/etc/mysql
- ./mysql/logs:/var/log/mysql
- ./mysql/data:/var/lib/mysql
jira:
container_name: jira
image: atlassian/jira-software:latest
restart: "no"
ports:
- 18080:8080
environment:
CATALINA_OPTS: -javaagent:/opt/atlassian/jira/atlassian-agent.jar
volumes:
- ./jira/data:/var/atlassian/application-data/jira
- ./libs/atlassian-agent.jar:/opt/atlassian/jira/atlassian-agent.jar
- ./libs/mysql-connector-java-8.0.30.jar:/opt/atlassian/jira/lib/mysql-connector-java.jar
这里定义了两个服务,mysql和jira,上面下载的两个jar包也通过数据卷挂载到jira容器中了。
5、启动容器
执行命令:docker-compose up -d,启动容器:
mysql镜像,之前演示过,这里只需要拉取jira镜像,并创建了两个容器,查看下容器启动情况。
mysql启动失败,回顾下基础篇中《在Docker中运行MySQL》,在mysql的conf下创建文件夹conf.d即可。
再次执行docker-compose up -d,启动容器,可见该命令的强大。
再次查看容器,应该就没问题了。
6、创建数据库
首先,通过MySQL客户端测试数据库连接,主机填写localhost。
接下来,创建该连接,打开该连接,新建查询,执行以下脚本,创建jira数据库和用户。
create database jiradb;
create user "jira"@"%" identified by "jira";
grant all privileges on jiradb.* to "jira"@"%";
flush privileges;
以上,创建了jiradb数据库,创建了jira用户,其密码为jira,并为该用户做了授权。
二、设置Jira
经过上述折腾,jira容器应该已经启动完毕了,打开http://localhost:18080。
1、设置中文
首先,将Language设置为中文。
2、我将设置它自己
接下来,选择我将设置它自己。
3、数据库设置
选择其它数据库,主机不能填localhost,应该写容器名mysql,端口填3306,不能填13306,因为是在容器中连接,数据库填jiradb,用户名和密码都是jira,测试连接。
注意:主机和端口不能填错了,因为这是在容器内使用,应该填写容器名和容器内使用的端口,否则测试连接失败。
4、设置应用程序的属性
属性采用默认设置就好了。
5、设置许可证
如果本地有java环境,可以在本地生成许可证,没有的话,进入jira容器生成也可以。
执行命令,带上服务器ID,生成许可证。
java -jar atlassian-agent.jar -d -m test@test.com -n BAT -p jira -o lewis2951 -s BSL7-RRF4-HKAS-ZHVK
以上通过本地环境生成的,复制许可证。
6、设置管理员账户
根据自己需求设置,Email地址可以写一个不存在的,但建议使用真实Email,最好找组织申请一个,下面会用到,例如jira@company.com。
7、设置电子邮件通知
如果现在设置,将带出上一步设置的管理员Email,这里就不设置了。
8、完成部署
到此,Jira就部署完成了,看看页面。
进入欢迎页面,可以创建示例项目,也可以选择其他,根据实际需要来选择。
9、查看许可证
最后看下许可证,在 管理 -> 应用程序 下。