From fe22f540a2d423e1324e68efb6aa0fa80e505bca Mon Sep 17 00:00:00 2001 From: LyLme Date: Tue, 26 Dec 2023 02:09:53 +0800 Subject: [PATCH] =?UTF-8?q?shell=E5=AE=89=E8=A3=85=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 127 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 install.sh diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..3ea989f --- /dev/null +++ b/install.sh @@ -0,0 +1,127 @@ +#!/bin/bash + +if ! command -v docker &> /dev/null || ! command -v docker-compose &> /dev/null; then + curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun +fi + +read -p "请输入数据库名(默认为spage):" db_database +db_database=${db_database:-spage} + +read -p "请设置数据库的root密码(默认为123456):" db_password +db_password=${db_password:-123456} + +echo "#### 外网端口和域名配置 ####" +echo "提示:域名需要解析后才能访问,若无外网访问需求可按下回车键保持默认" + + +while true; do + + read -p "请输入外网端口号80到65535(默认为 8080):" port + port=${port:-8080} + # 检查端口是否被占用 + result=$(netstat -tuln | grep ":$port ") + if [[ -n "$result" ]]; then + echo "端口 $port 已被占用" + else + break + fi +done + + + +sed -i "s//$port/" nginx/conf.d/nginx.conf.bak +read -p "请输入网站域名(可不填):" domain +if [ -n "$domain" ]; then + sed -i "s//$domain/" nginx/conf.d/nginx.conf.bak +else + sed -i "s//_/" nginx/conf.d/nginx.conf.bak + +fi +domain=${domain:-ip} + + +mv nginx/conf.d/nginx.conf.bak nginx/conf.d/nginx.conf +mv nginx/conf.d/default.conf nginx/conf.d/default.conf.bak + +# 创建docker-compose.yml文件,并写入配置信息 +cat << EOF > docker-compose-sh.yml +version: '3' +services: + php: + container_name: "spage-php74" + build: ./php + image: php74-fpm-alpine + #ports: + # - "9000:9000" #fpm 端口 + restart: always + volumes: + - ./php/etc:/usr/local/etc/php/conf.d #映射配置文件 + - ./www:/var/www/html + stdin_open: true + tty: true + links: + - "mysql" #链接mysql服务 + networks: + spage: + ipv4_address: 10.10.10.2 + environment: + - TZ=Asia/Shanghai # 设置时区 + nginx: + container_name: "spage-nginx" + image: nginx:latest + restart: always + ports: + - "$port:80" + environment: + - TZ=Asia/Shanghai + depends_on: + - "php" + links: + - "php" + volumes: + - ./nginx/conf.d:/etc/nginx/conf.d + #- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf + - ./nginx/log:/var/log/nginx/ + - ./www:/var/www/html + networks: + spage: + ipv4_address: 10.10.10.10 #分配ip + mysql: + container_name: "spage-mysql" + image: mysql:5.7 + #ports: + # - ":3306" + volumes: + - ./mysql/data:/var/lib/mysql #数据目录 + restart: always + environment: + - TZ=Asia/Shanghai + - MYSQL_ROOT_PASSWORD=$db_password #MySQL root密码 + - MYSQL_DATABASE=$db_database #MySQL 数据库名 + networks: + spage: + ipv4_address: 10.10.10.1 #MySQL ip地址 +networks: + spage: + driver: bridge + driver_opts: + com.docker.network.enable_ipv6: "true" + ipam: + config: + - subnet: 10.10.0.0/16 + +EOF +# 启动Docker Compose服务 +docker-compose -f docker-compose-sh.yml up -d + +# 显示安装完成信息 + +echo "外网地址:http://$domain:$port(外网访问需确保端口已放行)" +echo "内网地址:http://10.10.10.10" +echo "数据库地址:10.10.10.1(或spage-mysql)" +echo "数据库端口:3306" +echo "数据库名:$db_database" +echo "数据库用户名:root" +echo "数据库密码:$db_password" +echo "网站部署完成!" +