【无脑业余IT】阿里云CentOS7.9+Docker部署Gitlab+禅道

目的

阿里云上通过docker基于Centos7.9部署一个gitlab容器一个禅道容器
本文用于记录过程以备后面重复过程

端口规划

linux服务器ssh端口22
gitlab容器端口9000-9099
禅道容器端口9100-9199

过程

在Windows上装完测试完再部署到云服务器

Windows环境

Windows安装Docker

打开控制面板,找到增加windows功能,选中虚拟机平台,其实就是WSL,确认等待安装完成
Docker官网下载windows安装包安装完成

下面的安装都是基于命令行

Download Docker Hub里面现成的Centos7.9的Image

打开Docker UI程序,在最上面搜索Centos,找到后在后边的version里面选择7.9作为基础镜像

基于Centos7.0创建新的image安装ssh

#创建新的容器,给privileged权限,指定ssh port 9022
docker run -itd --name contos7.9_ssh --privileged=true -p 9022:22 contos7.9 /usr/sbin/init

#启动容器
docker exec -it contos7.9_ssh /bin/bash

#修改root password
passwd

#安装必要程序
yum install -y iproute openssh-server firewalld wget net-tools

#配置ssh,启动并开机启动
vi /etc/sshd/sshd_config
#允许root通过ssh登录 PermitRootLogin yes
systemctl start sshd.service
systemctl enable sshd.service

#防火墙,启动并开机启动
systemctl start firewalld
systemctl enable firewalld
#防火墙开放port22
firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --permanent --zone=public --add-port=22/udp
firewall-cmd --reload

#测试
#ipconfig,获取wsl桥的ip:IP
ssh root@IP -p 9022

#停止容器
docker stop contos7.9_ssh

#提交到image
docker commit contos7.9_ssh image_cent0s7.9_ssh

#删除容器
docker rm bcontos7.9_ssh

从image_centos7.9_ssh安装gitlab

#创建新的容器,给privileged权限,给docker网桥映射本地端口9022 9080 9065(smtp)
docker run -itd --name contos7.9_ssh_gitlab --privileged=true -p 9022:22 -p 9080:80 -p9065:465 image_cent0s7.9_ssh /usr/sbin/init

#启动容器
docker exec -it contos7.9_ssh_gitlab /bin/bash

#开放80端口
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
#开放smtp端口
firewall-cmd --permanent --zone=public --add-port=465/tcp
firewall-cmd --permanent --zone=public --add-port=465/udp
firewall-cmd --reload

#安装必要程序
yum -y install curl policycoreutils openssh-server openssh-clients postfix libsemanage-static libsemanage-devel
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
systemctl start postfix && systemctl enable postfix

#下面这步不稳定的话就换国内资源
yum install -y gitlab-ce

#查看服务器公网ip,这个IP和服务器上能查到的IP可能不一致
vi /etc/gitlab/gitlab.rb
#修改入口, 默认port 80,在docker里面不用改,可以通过容器的port进行映射
external_url ‘http://xxx.xxx.xxx.xxx’
#配置邮箱,改掉这些项
gitlab_rails[‘gitlab_email_enabled’] = true
gitlab_rails[‘smtp_enable’] = true
gitlab_rails[‘gitlab_email_display_name’] = ‘gitlab robot’

user[‘git_user_email’] = “xx@xx.com”
gitlab_rails[‘gitlab_email_from’] = “xx@xx.com”
gitlab_rails[‘gitlab_email_reply_to’] = “xx@xx.com”
gitlab_rails[‘smtp_user_name’] = “xx@xx.com”

gitlab_rails[‘smtp_address’] = “smtp.qiye.aliyun.com”
gitlab_rails[‘smtp_domain’] = “smtp.qiye.aliyun.com”

gitlab_rails[‘smtp_port’] = 465
gitlab_rails[‘smtp_password’] = “xxxxx”
gitlab_rails[‘smtp_authentication’] = “login”
gitlab_rails[‘smtp_enable_starttls_auto’] = false
gitlab_rails[‘smtp_tls’] = true
gitlab_rails[‘smtp_pool’] = true
gitlab_rails[‘smtp_openssl_verify_mode’] = ‘none’

#配置gitlab
gitlab-ctl reconfigure
#重启gitlab
gitlab-ctl restart

#配置和测试邮件
gitlab-rails console
#输入,配置root
user = User.where(id: 1).first
user.password = ‘qwerqwer’
user.password_confirmation = ‘qwerqwer’
user.save!
#测试发件
Notify.test_email(“xxx@xxx.com”,“gitlab robot speak”,“this is gitlab robot”).deliver_now
#退出
exit

#通过docker网桥的IP测试
http://xxx.xxx.xxx.xxx:9080/
#通过root和上面的密码进入

#Windows本地用户路径下.ssh/下新建config文件写入
Host xxx.xxx.xxx.xxx
HostName xxx.xxx.xxx.xxx
Port 9022
#xxx.xxx.xxx.xxx换成gitlab的IP或域名
#用来给指定的网站配置ssh port
#测试一下项目上传下载

#停止容器
exit
docker stop contos7.9_ssh_gitlab

#提交到image
docker commit contos7.9_ssh_gitlab image_cent0s7.9_ssh_gitlab

#导出image
docker save -o C:\Users\LeonLLei\Desktop\dockeroutput\image_cent0s7.9_ssh_gitlab.tar image_cent0s7.9_ssh_gitlab

#删除容器
docker rm docker stop contos7.9_ssh_gitlab

从image_centos7.9_ssh安装zbox

#创建新的容器,给privileged权限,给docker网桥映射本地端口9122 9180
docker run -itd --name contos7.9_ssh_zbox --privileged=true -p 9122:22 -p 9180:80 image_cent0s7.9_ssh /usr/sbin/init

#启动容器
docker exec -it contos7.9_ssh_zbox /bin/bash

#开放80端口
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

#下载禅道
#切记直接把压缩包解压到/opt下生成/opt/zbox,zbox默认会在/opt/zbox/下找默认配置文件
#切记解压后不要移动,移动后会启动禅道失败
mkdir -p /opt
wget https://dl.zentao.net/zentao/18.12/ZenTaoPMS-18.12-zbox_amd64.tar.gz -O /opt/ZenTaoPMS-18.12-zbox_amd64.tar.gz
cd /opt
tar -zxvf ZenTaoPMS-18.12-zbox_amd64.tar.gz
./zbox/zbox start

#设置禅道开机启动
vi /etc/rc.local
#增加/opt/zbox/zbox start
chmod 777 /etc/rc.d/rc.local

#通过docker网桥的IP测试
http://xxx.xxx.xxx.xxx:9180/
#进入后点击开源版本,默认账户admin,密码123456,第一次登录要求修改密码

#停止容器
exit
docker stop contos7.9_ssh_zbox

#提交到image
docker commit contos7.9_ssh_zbox image_cent0s7.9_ssh_zbox

#导出image
docker save -o C:\Users\LeonLLei\Desktop\dockeroutput\image_cent0s7.9_ssh_zbox.tar image_cent0s7.9_ssh_zbox

#删除容器
docker rm docker stop contos7.9_ssh_zbox

云服务器

云服务器开放端口

给云服务器增加一个安全组,名称gitlab,开放9022、9080、9065端口,一个给ssh另一个给http一个给smtp,配置到实例
给云服务器增加一个安全组,名称禅道,开放9122和9180端口,一个给ssh另一个给http,配置到实例

云服务器安装Docker

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker && systemctl enable docker

导入Docker Image

scp把本地的tar文件上传到服务器
docker load -i image_cent0s7.9_ssh_zbox.tar
docker load -i image_cent0s7.9_ssh_gitlab.tar

#查看已导入的镜像
docker images

#启动容器,注意设置自动启动 --restart=always
docker run -itd --name contos7.9_gitlab --privileged=true --restart=always -p 9022:22 -p 9080:80 -p9065:465 image_cent0s7.9_ssh_gitlab /usr/sbin/init
docker run -itd --name contos7.9_zbox --privileged=true --restart=always -p 9122:22 -p 9180:80 image_cent0s7.9_ssh_zbox /usr/sbin/init

#查看容器
docker ps

  • 21
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值