📕作者简介:热爱跑步的恒川,致力于C/C++、Java、Python等多编程语言,热爱跑步,喜爱音乐、摄影的一位博主。
📗本文收录于Microi吾码系列专栏,大家有兴趣的可以看一看
📘相关专栏C语言初阶、C语言进阶系列、恒川的日常汇报系列等,大家有兴趣的可以看一看
📙Python零基础入门系列,Java入门篇系列、docker技术篇系列、Apollo的学习录系列正在发展中,喜欢Python、Java、docker的朋友们可以关注一下
开源低代码平台-Microi吾码
Microi吾码是一个开源的低代码平台,旨在通过简化应用程序开发过程,帮助开发者和非开发者快速创建和部署应用。低代码平台通过可视化界面、拖拽操作、预设模板等方式,降低了编程的复杂度,让用户能够以更少的编码工作完成应用开发。
前言
有小伙伴提出他并不想在本地编译代码、打包镜像、上传镜像、安装服务器环境、安装docker容器等一系列繁琐的操作,见文章【开源低代码平台-Microi吾码-Docker部署】
因此博主编写了一键安装【mysql+redis+minio+mongodb+watchtower+低代码平台程序】脚本
CentOS7一键安装脚本
url=https://static.itdos.com/install/install-microi-centos.sh;if [ -f /usr/bin/curl ];then curl -sSO $url;else wget -O install-microi-centos.sh $url;fi;bash install-microi-centos.sh
注意事项:
- 执行上面脚本时,会提示【输入 g 以公网IP安装,输入 n 以内网IP安装】,请根据实际情况输入g或n
- 如果服务器没有docker环境,也会提示是否按y安装,虽然博主建议使用1Panel、宝塔之类的面板工具来管理服务器并安装docker,但如果您想快速开始就直接键入y吧
- 安装成功后,必需开放microi-api端口、前端传统界面端口、前端Web操作系统端口、MinIO端口
- 脚本安装mysql默认为4G内存服务器的性能配置,2G内存服务器建议下载脚本去掉性能配置再运行脚本
- 重复执行一键脚本前会提示先删除所有已安装容器,这将导致所有数据丢失:
docker ps -a --format "{
{.Names}}" | grep "^microi-install-" | xargs -r docker rm -f
安装成功预览图
安装过程图
安装结果docker
脚本代码【有点东西:)】
目前更新于2024-11-24 11:47,后续可能会经常更新
#!/bin/bash
echo 'Microi:当前一键脚本版本:2024-11-24 11:47'
# 获取局域网IP
LAN_IP=$(hostname -I | awk '{print $1}')
echo 'Microi:获取局域网IP: '$LAN_IP
# 获取公网IP
PUBLIC_IP=$(curl -s ifconfig.me)
echo 'Microi:获取公网IP: '$PUBLIC_IP
# 询问用户安装类型
echo 'Microi:您是想在公网访问系统还是内网访问?公网请提前做好端口开放。'
echo 'Microi:输入 g 以公网IP安装,输入 n 以内网IP安装:'
read -r install_type
if [ "$install_type" == "g" ]; then
ACCESS_IP=$PUBLIC_IP
echo 'Microi:将以公网IP安装。'
elif [ "$install_type" == "n" ]; then
ACCESS_IP=$LAN_IP
echo 'Microi:将以内网IP安装。'
else
echo 'Microi:无效的输入,脚本退出。'
exit 1
fi
# 检查Docker是否安装
if ! [ -x "$(command -v docker)" ]; then
echo 'Microi:您未安装docker,推荐使用1Panel、宝塔等面板工具来安装docker并管理您的服务器!'
echo 'Microi:是否立即安装Docker?(y/n)'
read -r answer
if [ "$answer" != "y" ]; then
echo 'Microi:安装取消,脚本退出。'
exit 1
fi
# 安装Docker
echo 'Microi:开始安装Docker...'
sudo yum update -y
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
echo 'Microi:Docker已成功安装。'
fi
# 配置Docker镜像加速器(现在太难找了,如果报错timeout就去阿里云申请一个自己私有的加速地址)
DOCKER_ACCELERATOR="https://mirrors.aliyun.com/docker-ce/"
echo 'Microi:配置Docker镜像加速器'
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["${DOCKER_ACCELERATOR}"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 生成随机端口和密码函数
echo 'Microi:生成随机端口和密码函数'
generate_random_port() {
shuf -i 17777-65535 -n 1
}
generate_random_password() {
openssl rand -base64 12 | tr -dc 'A-Za-z0-9' | head -c16
}
# 生成随机数据目录
generate_random_data_dir() {
local container_name="$1"
local dir="/home/data-${container_name}-$(openssl rand -hex 4)"
mkdir -p "${dir}"
echo "${dir}"
}
# 检查并提示用户手动删除已有容器
echo 'Microi:检查并提示用户手动删除已有容器'
if docker ps -a --format '{
{.Names}}' | grep -q '^microi-install-'; then
echo 'Microi:脚本重复运行前,需要先通过命令【docker ps -a --format "{
{.Names}}" | grep "^microi-install-" | xargs -r docker rm -f】删除所有相关容器后再重新运行,注意此操作将会删除数据库、MinIO文件,请谨慎操作'
exit 1
fi
# 检查并安装unzip
if ! [ -x "$(command -v unzip)" ]; then
echo 'Microi:您未安装unzip,正在为您安装...'
sudo yum install -y unzip
if [ $? -ne 0 ]; then
echo 'Microi:unzip安装失败,脚本退出。'
exit 1
fi
echo 'Microi:unzip已成功安装。'
else
echo 'Microi:unzip已安装。'
fi
# 创建 MySQL 配置文件
MYSQL_CONF_FILE="/tmp/my_microi.cnf"