首页 > 其他分享 >Archery Docker部署

Archery Docker部署

时间:2024-07-28 18:07:39浏览次数:10  
标签:Archery compose archery 部署 echo Docker data docker

SQL审核平台是企业中不可或缺的,保障业务迭代过程中安全高效,并且留存方便内部审核。
Archery平台满足以上要求,并且可以轻松接入lark,非常方便

一、环境准备

1.1、配置Docker代理(可选)

部署使用Docker方式部署,现在拉取镜像很多源已经无法使用,有代理的情况下可以为Docker配置
我使用了goproxy的socket代理,socket使用shadow

mkdir -p /etc/systemd/system/docker.service.d
cat >/etc/systemd/system/docker.service.d/http-proxy.conf<<EOF
[Service]
Environment="HTTP_PROXY=http://172.16.0.24:443"
Environment="HTTPS_PROXY=http://172.16.0.24:443"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF

1.2、安装Docker&Docker-Compose

apt install docker.io -y
# apt和curl选择其中一种方式安装
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
|
apt install docker-compose

1.3、调整Docker数据目录

为了方便后期数据管理
做一个docker数据目录的切换

#!/bin/bash

# 需要以 root 权限运行此脚本

# 停止 Docker 服务
echo "正在停止 Docker 服务..."
systemctl stop docker

# 创建新的 Docker 数据目录
echo "正在创建新的 Docker 数据目录 /data/docker..."
mkdir -p /data/docker
chown root:root /data/docker  # 根据需要调整权限

# 更新 Docker 配置文件,执行shell脚本
echo "正在更新 Docker 配置文件..."
if [ ! -f /etc/docker/daemon.json ]; then
    echo "Docker 配置文件不存在,正在创建..."
    echo "{\"data-root\": \"/data/docker\"}" | sudo tee /etc/docker/daemon.json > /dev/null
else
    echo "Docker 配置文件已存在,正在修改..."
    sudo sed -i '/"data-root":/d' /etc/docker/daemon.json  # 删除现有的 data-root 行,如果存在
    # 确保文件以大括号结尾
    sudo sed -i '$ s/}$/,"data-root": "\/data\/docker"}/' /etc/docker/daemon.json
fi

# 移动现有的 Docker 数据
echo "正在移动现有的 Docker 数据..."
sudo mv /var/lib/docker/* /data/docker

# 重新启动 Docker 服务
echo "正在重新启动 Docker 服务..."
sudo systemctl start docker

echo "Docker 数据目录已成功切换到 /data/docker"

二、Archery部署

2.1、整理Archery部署目录

# 在/data目录下
cd /data
# 使用了当前最新版本
wget https://github.com/hhyo/Archery/archive/refs/tags/v1.11.1.tar.gz
tar xf v1.11.1.tar.gz
mkdir archery
cp -a Archery-1.11.1/src/docker-compose/* archery/
cp -a Archery-1.11.1/src/docker-compose/.env archery/
cd archery
# compose部署方式可以使用ENV传入变量,也可以直接修改settings.py,修改ENV需要down up compose,修改settings.py重启就会生效
chmod +x .env

2.2、docker-compose配置调整

# 数组语法不支持指定 condition 条件。如果需要保留 condition 条件,则只能使用键值对语法
$ docker-compose -f docker-compose.yml up -d
ERROR: The Compose file './docker-compose.yml' is invalid because:
services.archery.depends_on contains an invalid type, it should be an array
# 修改了两个地方
# archery版本
  hhyo/archery:v1.11.1
# 依赖修改为数组
    depends_on:
      - redis
      - mysql

2.3、启动

# .env文件修改
NGINX_PORT=9123
DEBUG=true
DATABASE_URL=mysql://root:123456@mysql:3306/archery
CACHE_URL=redis://redis:6379/0?PASSWORD=123456
CSRF_TRUSTED_ORIGINS=http://127.0.0.1:9123

# 启动
docker-compose -f docker-compose.yml up -d

# 表结构初始化
docker exec -ti archery /bin/bash
cd /opt/archery
source /opt/venv4archery/bin/activate
python3 manage.py makemigrations sql  
python3 manage.py migrate 

# 数据初始化,这里我测试了镜像v1.10.0和v1.11.1两个版本,10版本镜像使用Centos,系统里有mysql-client,11版本使用ubuntu,系统中没有mysql-client。会导致两条数据初始化的命令失败。为此我特意导出了相关三张表的数据进行了初始化前后对比,没有太大异常
python3 manage.py dbshell<sql/fixtures/auth_group.sql
python3 manage.py dbshell<src/init_sql/mysql_slow_query_review.sql

# 11版本报错如下:
CommandError: You appear not to have the 'mysql' program installed or on your path.
感兴趣的也可以自行导出后对比
mysqldump -u root -p123456 -h 127.0.0.1 archery sql_instance_tag auth_group auth_group_permissions > permissions_and_groups.sql


# 创建archery管理员
python3 manage.py createsuperuser

# 日志查看和问题排查
docker logs archery
# mysql错误日志,两个版本都是这样的报错,但平台使用正常,1.8.5镜像版本没有问题,应该不是后端组件连不上数据库
[Note] Access denied for user 'root'@'localhost' (using password: NO)

标签:Archery,compose,archery,部署,echo,Docker,data,docker
From: https://www.cnblogs.com/Jarvansi/p/18328617

相关文章

  • linux服务器使用docker部署ES相关记录
    ES/可视化工具Kibana/ik分词器最好使用相同版本部署,实在找不到资源可基于ES版本,其余可向下兼容找最高版本docker创建网络因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:dockernetworkcreatees-netES配置文件夹数据卷挂载:需先复制config......
  • 使用 Docker Compose 部署 RabbitMQ 的一些经验与踩坑记录
    前言RabbitMQ是一个功能强大的开源消息队列系统,它实现了高效的消息通信和异步处理。本文主要介绍其基于Docker-Compose的部署安装和一些使用的经验。特点成熟,稳定消息持久化灵活的消息路由高性能,高可用性,可扩展性高支持插件系统:RabbitMQ具有丰富的插件系统,可以通......
  • 征服 Docker 镜像访问限制:KubeSphere v3.4.1 成功部署全攻略
    近期,KubeSphere社区的讨论中频繁出现关于Docker官方镜像仓库访问受限的问题。本文旨在为您提供一个详细的指南,展示在Docker官方镜像访问受限的情况下,如何通过KubeKeyv3.1.2一次性成功部署KubeSpherev3.4.1以及Kubernetesv1.28.8集群。这将帮助您克服访问限制,确保......
  • 【shell脚本快速一键部署项目】
    目录一、环境拓扑图二、主机环境描述三、注意四、需求描述五、shell代码的编写六、总结一、环境拓扑图二、主机环境描述主机名主机地址需要提供的服务content.exam.com172.25.250.101提供基于httpd/nginx的YUM仓库服务ntp.exam.com172.25.250.102提供基于Chrony......
  • 【YOLOv8】实战二:手把手教你使用YOLOv8实现实时目标检测、实例分割、姿态估计、目标追
    简介UltralyticsYOLOv8是一种前沿的、最先进的(SOTA)模型,它在前代YOLO版本的成功基础上进行了进一步的创新,引入了全新的特性和改进,以进一步提升性能和灵活性。作为一个高速、精准且易于操作的设计,YOLOv8在广泛的领域中,包括目标检测与跟踪、实例分割、图像分类以及姿势估计等任......
  • 使用 Docker 部署 Next Terminal 轻量级堡垒机
    NextTerminal是一款开源的交互审计系统,支持多种协议如RDP、SSH、VNC、Telnet和Kubernetes。它不仅功能强大,而且易于安装和使用。本文将介绍如何使用Docker部署NextTerminal,帮助你快速搭建一个轻量级堡垒机系统。环境准备在开始部署之前,请确保你的系统已安装以下软件......
  • Windows下使用Apache和mod_wsgi部署django项目
    一、安装Python确定好所需要的python版本。二、安装Apacheapache下载地址:http://httpd.apache.org/docs/current/platform/windows.html#down下载完成后做如下操作将apache解压后直接复制到你想安装的路径下1、更改httpd.conf文件,找到如下代码并更改路径DefineSRVROOT"E:......
  • 随着软件开发方法的不断演进,Cobol 程序如何适应敏捷开发和持续集成/持续部署(CI/CD)的流
    Cobol是一种古老的编程语言,最初设计用于商业数据处理。虽然它不是为敏捷开发和CI/CD流程而设计的,但仍然可以通过一些技术和方法来使其与这些现代开发流程兼容。以下是一些方法可以帮助Cobol程序适应敏捷开发和CI/CD流程:拆分和模块化:将Cobol程序拆分为更小的模块,使每个模......
  • linux centos7环境下通过rpm部署MySQL
    一、环境准备环境:centos7,确保虚拟机内存足够,不然无法上传数据包和解压mysql包:mysql-8.0.25-1.el7.x86_64.rpm-bundle.tar这个包去MySQL官网可以下载,此链接可以直达:https://downloads.mysql.com/archives/community/二、打开远程连接,连上自己的虚拟机1.连上自己的虚拟机后......
  • 【docker】配置mysql及数据持久化
    【docker】配置mysql及数据持久化前言一、使用docker时常用的命令1、用usermod命令向docker用户组添加新用户2、给docker的images打标签二、docker相关的环境配置1、配置文件的生效条件/etc/profile文件的环境变量所有用户可用,只在用户登陆的时候执行一次,安装编译好的全......