记一次DevOps私有化部署

发布时间 2023-11-05 00:39:23作者: peng_boke

客户要求私有化部署,只是简单熟悉docker命令,很多东西不了解,踩了一些坑,所以记录一下。

(1)克隆devops

image-20231024153411118

(2)Docker注册表,这次用的是华为云镜像服务

image-20231024153639802

image-20231024153751923

(3)更改Docker注册表服务连接

image-20231024154617081

image-20231024154641828

(4)修改命名空间

image-20231024154135480

image-20231024154228219

(5)保存和排队

image-20231024154723615

(6)排队失败,上传本地打包文件,然后打包

首先本地编译

# 安装
npm install
# 正式环境
ng build --project=appName --configuration=production --prod
# 测试环境
ng build --project=appName --configuration=uat --prod        

上传打包文件

image-20231105003131592

线上打包,禁用build,直接打包

image-20231024170405438

(7)准备docker打包命令,命名为run_docker_container.sh

注意:脚本文件的行结尾格式修改为(LF),如果是(CRLF)格式会报错

resources:
- repo: self
queue:
  name: Default
#生成管道引用名为“docker images -a |  grep "cost-report-dexing"  | awk '{print $3}'”的未定义变量。创建或编辑此 YAML 文件的生成管道,定义“变量”选项卡上的变量。请参阅 https://go.microsoft.com/fwlink/?linkid=865972
#生成管道引用名为“docker images -a |  grep "cost-report-dexing"  | awk '{print $3}'”的未定义变量。创建或编辑此 YAML 文件的生成管道,定义“变量”选项卡上的变量。请参阅 https://go.microsoft.com/fwlink/?linkid=865972
steps:
- task: Docker@1
  displayName: 'Build an image'
  inputs:
    containerregistrytype: 'Container Registry'

    dockerRegistryEndpoint: 'registry-huawei'

    dockerFile: Cost.Report/Dockerfile

    imageName: 'ns-nxin/cost-report-dexing:$(Build.BuildId)'


- task: Docker@1
  displayName: 'Push an image'
  inputs:
    containerregistrytype: 'Container Registry'

    dockerRegistryEndpoint: 'registry-huawei'

    command: 'Push an image'

    imageName: 'ns-nxin/cost-report-dexing:$(Build.BuildId)'


- script: |
   currimages=$(docker images -a |  grep "cost-report-dexing"  | awk '{print $3}')
   if [ "${currimages}" != "" ]; then 
      docker rmi -f $(docker images -a |  grep "cost-report-dexing"  | awk '{print $3}')
   fi
  displayName: '命令行脚本'

(8)登录华为云Docker镜像服务

如果已登录,不需要再登录了

docker login -u 用户名 -p 密码 服务器

(9)run_docker_container.sh拷贝到服务器

image-20231024171037597

(10)run_docker_container.sh文件授权权限

chmod u+x ./run_docker_container.sh

(11)执行run_docker_container.sh文件

./run_docker_container.sh 名称 序列号 正式环境 端口 地址

名称dbn-dx-purchase-apply-web

image-20231024171334240

序列号:79457

image-20231024171414172

正式环境:production

端口:与之前保持一直9500

image-20231024171923164

地址:服务所在地址 192.168.100.57

完整命令:

./run_docker_container.sh 容器名称 序列号 环境 端口 IP

# docker 常用命令
# 查看镜像
docker images
# 删除镜像
docker rmi 镜像ID
# 停止容器
docker stop 容器ID
# 删除容器
docker rm 容器ID
# 删除镜像
docker rmi repository:tag
# 进入容器
docker exec -it 容器名 sh
# 退出容器
exit

执行结果

image-20231105002934770

(12)创建一个分支用于部署

# 创建分支
git branch 分支名称
# 切换分支
git checkout 分支名称
# 切换分支
git push origin 分支名称

image-20231105002552703

image-20231105002634577

提交打包文件

image-20231105003247355

打包文件要全部提交,检查.gitignore

image-20231025141417230

包括忽略文件

image-20231105003325998

(13)后端部署,创建分支

git branch 分支名称
git checkout 分支名称
git push origin 分支名称

(14)修改配置文件

image-20231025173341931

修改域名

image-20231026091353736

修改密匙

image-20231026091426462

(15)保存和排队

修改为刚创建的分支

image-20231025173435466

(16)获取序列号

image-20231025173539372

(17)执行,剩下操作基本和前端一致

./run_docker_container.sh 服务名称 序列号 环境 端口 IP

(18)修改Kong网关,地址为后端地址

image-20231025180852299