DNMP一键脚本

技巧分享 · 27 天前 · 54 人浏览

基于linux命令行常规搭建php+nginx+mysql站点,一个个搭建太慢了,而且配置也是个麻烦事,博主自从了解DNMP集成安装,就喜欢上这种方式了。

DNMP的流程就是安装docker-》安装docker-compose-》安装git-》拉取dnmp代码-》复制环境变量和docker-compose.yml配置文件-》执行docker-compose up构建-》站点搭建完成

所以针对这个流程,写个脚本。限于apt镜像,docker镜像拉取受限。所以执行脚本后,也得一个个排坑,保不齐哪个流程就中断了。但是对于国外的vps,不出意外的话应该还是挺好使的。简称一步到位!

Ubuntu 服务器

  脚本博主也放了一份在服务器上,可以远程拉取!不保证失效!

dnmp.sh 脚本代码:

#!/bin/bash
#wget https://test.liuqingwushui.top/dnmp.sh && bash dnmp.sh
# 定义颜色代码
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # 无颜色

# 第一步:安装 Docker、Docker Compose 和 Git
function install_tools() {
    echo "开始安装 Docker、Docker Compose 和 Git..."

    # 更新软件包列表
    sudo apt update

    # 安装 Docker
    if ! sudo apt install -y docker.io; then
        echo -e "${RED}Docker 安装失败,请检查错误并重试。${NC}"
        exit 1
    fi

    # 安装 Docker Compose
    if ! curl -L "https://github.com/docker/compose/releases/download/1.29.2/
    docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose; then
        echo -e "${RED}Docker Compose 下载失败,请检查错误并重试。${NC}"
        exit 1
    fi

    if ! sudo chmod +x /usr/local/bin/docker-compose; then
        echo -e "${RED}Docker Compose 权限修改失败,请检查错误并重试。${NC}"
        exit 1
    fi

    # 安装 Git
    if ! sudo apt install -y git; then
        echo -e "${RED}Git 安装失败,请检查错误并重试。${NC}"
        exit 1
    fi

    echo -e "${GREEN}Docker、Docker Compose 和 Git 安装完成。${NC}"
}

# 第二步:通过 Git 克隆 DNMP 项目
function clone_dnmp() {
    echo "开始克隆 DNMP 项目..."

    if ! git clone https://gitee.com/yeszao/dnmp.git; then
        echo -e "${RED}Git 克隆失败,请检查错误并重试。${NC}"
        exit 1
    fi

    echo -e "${GREEN}DNMP 项目克隆成功。${NC}"
}

# 第三步:复制配置文件并进入项目目录
function setup_dnmp() {
    echo "开始设置 DNMP 项目..."

    dnmp_dir="dnmp"  # 假设 dnmp 目录相对于当前脚本的路径

    # 确保 dnmp 目录存在
    if [ ! -d "$dnmp_dir" ]; then
        echo "dnmp 目录不存在: $dnmp_dir"
        exit 1
    fi

    # 进入 dnmp 目录并执行命令
    (cd "$dnmp_dir" && {
        # 复制环境变量文件
        if ! cp env.sample .env; then
            echo -e "${RED}复制 env.sample 失败,请检查错误并重试。${NC}"
            exit 1
        fi

        # 复制 docker-compose 配置文件
        if ! cp docker-compose.sample.yml docker-compose.yml; then
            echo -e "${RED}复制 docker-compose.sample.yml 失败,请检查错误并重试。${NC}"
            exit 1
        fi

        # 启动 docker-compose
        if ! docker-compose up -d; then
            echo -e "${RED}docker-compose up 失败,请检查错误并重试。${NC}"
            exit 1
        fi

        echo -e "${GREEN}DNMP 项目设置完成,docker-compose 启动成功。${NC}"
    }) || {
        echo "在 dnmp 目录中执行命令失败"
        exit 1
    }
}

# 主函数,按顺序执行上述步骤
function main() {
    install_tools
    clone_dnmp
    setup_dnmp
    echo "所有操作已完成,DNMP集成环境搭建并启动成功!"
}

# 执行主函数
main


Centos服务器

dnmp-centos.sh 脚本代码:

#!/bin/bash

# 定义颜色代码
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # 无颜色

# 第一步:安装 Docker、Docker Compose 和 Git
function install_tools() {
    echo "开始安装 Docker、Docker Compose 和 Git..."

    # 更新软件包列表
    sudo yum update -y

    # 安装 Docker
    if ! sudo yum install -y docker; then
        echo -e "${RED}Docker 安装失败,请检查错误并重试。${NC}"
        exit 1
    fi

    # 启动 Docker 服务
    sudo systemctl start docker

    # 使 Docker 服务开机自启
    sudo systemctl enable docker

    # 安装 Docker Compose
    if ! curl -K -L "https://github.com/docker/compose/releases
    /download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose; then
        echo -e "${RED}Docker Compose 下载失败,请检查错误并重试。${NC}"
        exit 1
    fi

    if ! sudo chmod +x /usr/local/bin/docker-compose; then
        echo -e "${RED}Docker Compose 权限修改失败,请检查错误并重试。${NC}"
        exit 1
    fi

    # 安装 Git
    if ! sudo yum install -y git; then
        echo -e "${RED}Git 安装失败,请检查错误并重试。${NC}"
        exit 1
    fi

    echo -e "${GREEN}Docker、Docker Compose 和 Git 安装完成。${NC}"
}

# 第二步:通过 Git 克隆 DNMP 项目
function clone_dnmp() {
    echo "开始克隆 DNMP 项目..."

    if ! git clone https://gitee.com/yeszao/dnmp.git; then
        echo -e "${RED}Git 克隆失败,请检查错误并重试。${NC}"
        exit 1
    fi

    echo -e "${GREEN}DNMP 项目克隆成功。${NC}"
}

# 第三步:复制配置文件并进入项目目录
function setup_dnmp() {
    echo "开始设置 DNMP 项目..."

    dnmp_dir="dnmp"  # 假设 dnmp 目录相对于当前脚本的路径

    # 确保 dnmp 目录存在
    if [ ! -d "$dnmp_dir" ]; then
        echo "dnmp 目录不存在: $dnmp_dir"
        exit 1
    fi

    # 进入 dnmp 目录并执行命令
    (cd "$dnmp_dir" && {
        # 复制环境变量文件
        if ! cp env.sample .env; then
            echo -e "${RED}复制 env.sample 失败,请检查错误并重试。${NC}"
            exit 1
        fi

        # 复制 docker-compose 配置文件
        if ! cp docker-compose.sample.yml docker-compose.yml; then
            echo -e "${RED}复制 docker-compose.sample.yml 失败,请检查错误并重试。${NC}"
            exit 1
        fi

        # 启动 docker-compose
        if ! docker-compose up -d; then
            echo -e "${RED}docker-compose up 失败,请检查错误并重试。${NC}"
            exit 1
        fi

        echo -e "${GREEN}DNMP 项目设置完成,docker-compose 启动成功。${NC}"
    }) || {
        echo "在 dnmp 目录中执行命令失败"
        exit 1
    }
}

# 主函数,按顺序执行上述步骤
function main() {
    install_tools
    clone_dnmp
    setup_dnmp
    echo "所有操作已完成,DNMP集成环境搭建并启动成功!"
}

# 执行主函数
main


经过多个测试服务器发现还是Ubuntu系统比较好用,如果docker-compose一直安装失败,那么就手动安装下。


脚本
验证码:
Theme: Jasmine by Kent Liao