網站搭建 | 從零開始在CentOS7中使用Docker搭建CF和Jira

溫馨提示

  • 服務器配置至少4核CPU、16GB內存才能較為流暢使用,不推薦個人搭建使用

一、前期準備


1.1 下載相關軟件

  • CentOS7
    步驟:打開網站=>點擊"OS鏡像"

  • Jira不用下載

想要直接下載,就點我


1.2 虛擬機安裝CentOS7

1.2.1 安裝步驟

自行百度

1.2.2 linux設置

  • 查看系統版本
    cat /etc/redhat-release
  • 查看系統語言
    echo $LANG
  • 檢查系統時間
    date
  • 服務裁剪
    setup
    保留network、NetworkManager、crond、irqbalance、rsyslog、ssd、sysstat
  • 關閉防火墻
    systemctl stop firewall
  • 更改系統啟動等級(使用多用戶命令行)
    systemctl set-default multi-user.target
  • 更改主機名
    vim /etc/sysconfig/network
    vim /etc/hosts
    vim /etc/hostname
    hostnamectl set-hostname <新主機名>
    hostname <新主機名>
  • 安裝dos2unix
    yum install dos2unix -y
  • 重啟服務器
    reboot
  • 更改軟件源
    rm -rf /etc/yum.repos.d/*.repo
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    yum clean all && yum makecache
    yum update -y

參閱:Centos7更改yum源與更新系統

  • 卸載開源jdk
    rpm -qa|grep jdk
    yum remove -y <packagename>

1.3 CentOS7安裝Oracel JDK

  • 安裝oracel的jdk
    mkdir -p /usr/local/java
    cd /usr/local/java
    tar -zxvf jdk-8u171-linux-x64.tar.gz
  • 設置環境變量
    vim /etc/profile
JAVA_HOME=/usr/local/java/jdk1.8.0_171
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

source /etc/profile

  • 查看java版本
    java -version

參閱:CentOS7下安裝jdk8環境


1.4 CentOS7安裝Docker

  • 安裝docker-ce
    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
    docker --version
  • 配置docker加速

第一種方式:


mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

注意:"registry-mirrors"前的空白符是一個TAB而非空格

systemctl daemon-reload
systemctl restart docker

第二種方式:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

參閱:配置 Docker 鏡像站

  • 配置docker

dig @114.114.114.114 registry-1.docker.io | grep registry-1.docker.io. | awk -F ' ' '{print$5}'
vim /etc/hosts

xxx.xxx.xxx.xxx registry-1.docker.io

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DNS1=223.5.5.5
DNS2=223.6.6.6

systemctl restart docker

參閱:

1.5 CentOS7安裝MySQL5.7

  • 創建安裝目錄
    mkdir -p /opt/mysql
  • 將組件包上傳到安裝目錄下
  • 解壓
    tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
  • 修改目錄名
    mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql-5.7.30
  • 檢查mysql組和用戶是否存在,如果沒有則創建
    cat /etc/group|grep mysql
    groupadd mysql
    useradd -r -g mysql mysql
  • 創建數據目錄
    cd /opt/mysql/mysql-5.7.30
    mkdir -p data
  • 將/opt/mysql/mysql-5.7.30的所有者及所屬組改為mysql
    chown -R mysql:mysql /opt/mysql/mysql-5.7.30
  • 在/opt/mysql/mysql-5.7.30/support-files目錄下創建my_default.cnf
    cd /opt/mysql/mysql-5.7.30/support-files
    vim my_default.cnf
[mysqld]

#設置mysql的安裝目錄
basedir = /opt/mysql/mysql-5.7.30
#設置mysql數據庫的數據存放目錄
datadir = /opt/mysql/mysql-5.7.30/data
#設置端口
port = 3306

socket = /tmp/mysql.sock

transaction-isolation=READ-COMMITTED

default-storage-engine=INNODB
innodb_default_row_format=DYNAMIC
innodb_large_prefix=ON
innodb_file_format=Barracuda
innodb_log_file_size=2G
#設置字符集
character-set-server=utf8mb4
#日志存放目錄
log-error = /opt/mysql/mysql-5.7.30/data/mysqld.log
pid-file = /opt/mysql/mysql-5.7.30/data/mysqld.pid
#允許時間類型的數據為零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_AUTO_VALUE_ON_ZERO)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO

cp my_default.cnf /etc/my.cnf

  • 初始化數據庫
    /opt/mysql/mysql-5.7.30/bin/mysqld --initialize --user=mysql --basedir=/opt/mysql/mysql-5.7.30/ --datadir=/opt/mysql/mysql-5.7.30/data/
  • 獲取臨時密碼
    cat /opt/mysql/mysql-5.7.30/data/mysqld.log | grep password
  • 啟動腳本放到開機初始化目錄
    cp /opt/mysql/mysql-5.7.30/support-files/mysql.server /etc/init.d/mysql
  • mysql作為系統命令
    cp /opt/mysql/mysql-5.7.30/bin/mysql /sbin/
  • systemctl啟動腳本
    vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql


PIDFile=/opt/mysql/mysql-5.7.30/data/mysqld.pid

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Execute pre and post scripts as root
PermissionsStartOnly=true
# Needed to create system tables
#ExecStartPre=/usr/bin/mysqld_pre_systemd

# Start main service
ExecStart=/opt/mysql/mysql-5.7.30/bin/mysqld --daemonize --pid-file=/opt/mysql/mysql-5.7.30/data/mysqld.pid
# 注意這里要加上 --daemonize 
# Use this to switch malloc implementation
#EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 5000

Restart=on-failure

RestartPreventExitStatus=1

PrivateTmp=false

  • 啟動mysql
    chkconfig mysql on
    systemctl start mysql
  • 進入mysql
    mysql -uroot -p
  • 執行SQL
-- 更改root登錄密碼及允許遠程訪問
set password=password('123456');
grant all privileges on *.* to root@'%' identified by '123456';
flush privileges;

-- 創建jira數據庫及用戶
create database jira character set utf8mb4 collate utf8mb4_bin;
create user jira identified by 'jiraworker';
grant select,insert,update,delete,create,drop,references,alter,index on jira.* to 'jira'@'%';
flush privileges;

-- 創建confluence數據庫及用戶
create database confluence character set utf8mb4 collate utf8mb4_bin;
create user cf identified by 'cfworker';
grant select,insert,update,delete,create,drop,references,alter,index on confluence.* to 'cf'@'%' ;
flush privileges;

-- 設置confdb事務級別
show variables like 'tx%';
set global tx_isolation='READ-COMMITTED';
set session transaction isolation level read committed;
show variables like 'tx%';
flush privileges;

-- 退出
exit;
  • 重啟mysql服務
    systemctl restart mysql

參閱:

1.6 CentOS7安裝Portainer

  • 下載鏡像
    docker pull portainer/portainer
  • 啟動容器
    docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --name portainer portainer/portainer
  • 訪問界面
    <虛擬機IP>:9000

參閱:docker的容器可視化工具portainer


二、開始安裝

  • 創建文件目錄
    mkdir -p /home/jira
    mkdir -p /home/confluence

2.1 安裝Jira

2.1.1 第一種方式:docker安裝Jira

  • 編寫Dockerfile文件
    cd /home/jira
    vim Dockerfile
FROM cptactionhank/atlassian-jira-software:8.1.0

USER root

# 將代理破解包加入容器
COPY "atlassian-agent.jar" /opt/atlassian/jira/

# 設置啟動加載代理包
RUN echo 'export CATALINA_OPTS="-javaagent:/opt/atlassian/jira/atlassian-agent.jar ${CATALINA_OPTS}"' >> /opt/atlassian/jira/bin/setenv.sh
  • atlassian-extras-3.2.jar上傳到/home/jira
  • 構建鏡像
    docker build -f Dockerfile -t jira/jira:v8.1.0 .
  • 啟動容器
    docker run --detach --publish 8080:8080 --name jira -e JAVA_OPTS='-Xmx512m' jira/jira:v8.1.0

    docker run --detach --publish 8080:8080 --name jira jira/jira:v8.1.0

  • 訪問Jira安裝界面(界面多等等,加載慢)
    <虛擬機IP>:8080

提示:

  • 數據庫類型選擇MySQL5.7(報錯就選擇MySQL5.6)
  • 數據庫、用戶名及密碼:jira、jira、jiraworker
  • 生成jira密鑰
    java -jar /home/jira/atlassian-agent.jar -d -m test@test.com -n Test -p jira -o http://<虛擬機IP> -s <服務ID>

-m test@test.com -n Testtest@test.com修改為自己的郵箱,Test為個人的名稱

【界面演示】

2.1.2 第二種方式:官方安裝包

暫未提供

參閱:


2.2 安裝CF

2.2.1 第一種方式:docker安裝CF

  • 編寫Dockerfile文件
    cd /home/confluence
    vim Dockerfile
FROM cptactionhank/atlassian-confluence:7.4.0

USER root

# 將代理破解包加入容器
COPY "atlassian-agent.jar" /opt/atlassian/confluence/

# 設置啟動加載代理包
RUN echo 'export CATALINA_OPTS="-javaagent:/opt/atlassian/confluence/atlassian-agent.jar ${CATALINA_OPTS}"' >> /opt/atlassian/confluence/bin/setenv.sh
  • atlassian-extras-3.2.jar上傳到/home/confluence
  • 構建鏡像
    docker build -f Dockerfile -t confluence/confluence:v7.4.0 .
  • 啟動容器
    docker run --detach --publish 8090:8090 --name confluence -e JAVA_OPTS='-Xmx512m' confluence/confluence:v7.4.0

    docker run --detach --publish 8090:8090 --name confluence confluence/confluence:v7.4.0

  • 訪問CF安裝界面(界面多等等,加載慢)
    <虛擬機IP>:8090

提示:

  • 數據庫類型選擇MySQL5.7(報錯就選擇MySQL5.6)
  • 數據庫、用戶名及密碼:confluence、cf、cf
  • 生成jira密鑰
    java -jar /home/confluence/atlassian-agent.jar -d -m test@test.com -n Test -p conf -o http://<虛擬機IP> -s <服務ID>

-m test@test.com -n Testtest@test.com修改為自己的郵箱,Test為個人的名稱

【界面演示】

2.2.2 第二種方式:官方安裝包

暫未提供

參閱:


參閱:


更新中......


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,517評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,087評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,521評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,493評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,207評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,603評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,624評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,813評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,364評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,110評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,305評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,874評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,532評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,953評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,209評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,033評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,268評論 2 375