Browse Source

更新项目文件

gengjunfang 1 month ago
parent
commit
787bf46d9b

+ 66 - 31
deploy.sh

@@ -49,6 +49,36 @@ echo "  开始部署..."
 echo "=========================================="
 echo ""
 
+
+echo "开始设置宿主机挂载目录权限..."
+# 定义需要授权的宿主机目录列表(根据你的 compose 挂载路径填写)
+MOUNT_DIRS=(
+  "./projects/www"               # PHP 代码目录(对应容器 /var/www/html)
+  #"./mysql/data"                 # MySQL 数据目录
+  #"./mysql/conf"                 # MySQL 配置目录
+  "./mysql/init"                 # MySQL 初始化脚本目录
+  #"./redis/data"                 # redis 数据目录
+  #"./redis/conf/redis.conf"      # redis 配置目录
+  #"./nginx/conf"                 # nginx 配置目录
+  #"./nginx/logs"                 # nginx 日志目录
+
+  # 其他容器的挂载目录(如有),按实际路径添加
+)
+
+# 循环给每个目录设置 777 权限
+for dir in "${MOUNT_DIRS[@]}"; do
+  # 检查目录是否存在,不存在则创建
+  if [ ! -d "$dir" ]; then
+    mkdir -p "$dir"
+    echo "创建目录:$dir"
+  fi
+  # 设置权限
+  chmod -R 777 "$dir"
+  echo "已授权目录:$dir(权限 777)"
+done
+echo "宿主机挂载目录授权完成..."
+
+
 # 自动检测系统架构
 ARCH=$(uname -m)
 case "$ARCH" in
@@ -67,6 +97,7 @@ esac
 echo -e "${GREEN}✓ 检测到系统架构: $ARCH ($ARCH_SUFFIX)${NC}"
 echo ""
 
+
 # 加载镜像
 echo -e "${YELLOW}加载镜像...${NC}"
 
@@ -130,39 +161,43 @@ echo -e "${GREEN}等待 MySQL 启动完成...${NC}"
 sleep 15
 
 # 初始化 MySQL 数据库
-if [ -f "mysql-init.sql" ]; then
+if [ -f "./mysql/init/mysql-init.sql" ]; then
+    # echo ""
+    # echo -e "${YELLOW}执行 MySQL 初始化脚本...${NC}"
+
+    # # 等待 MySQL 完全就绪(兼容所有系统)
+    # COUNTER=0
+    # MAX_RETRIES=30
+    # while [ $COUNTER -lt $MAX_RETRIES ]; do
+    #     if docker exec mysql mysqladmin ping -h localhost -uroot -pZskk@2025 --silent &> /dev/null; then
+    #         echo ""
+    #         echo -e "${GREEN}✓ MySQL 已就绪${NC}"
+    #         break
+    #     fi
+    #     echo -n "."
+    #     sleep 1
+    #     COUNTER=$((COUNTER + 1))
+    # done
+
+    # if [ $COUNTER -eq $MAX_RETRIES ]; then
+    #     echo ""
+    #     echo -e "${RED}✗ MySQL 启动超时${NC}"
+    #     exit 1
+    # fi
+    # echo ""
+
+    # # 执行初始化脚本
+    # docker exec -i mysql mysql -uroot -pZskk@2025 pacsonline < ./mysql/init/mysql-init.sql
+
+    # if [ $? -eq 0 ]; then
+    #     echo -e "${GREEN}✓ MySQL 初始化完成${NC}"
+    # else
+    #     echo -e "${RED}✗ MySQL 初始化失败${NC}"
+    # fi
+    
     echo ""
-    echo -e "${YELLOW}执行 MySQL 初始化脚本...${NC}"
-
-    # 等待 MySQL 完全就绪(兼容所有系统)
-    COUNTER=0
-    MAX_RETRIES=30
-    while [ $COUNTER -lt $MAX_RETRIES ]; do
-        if docker exec mysql8_deploy mysqladmin ping -h localhost -uroot -Zskk@2025 --silent &> /dev/null; then
-            echo ""
-            echo -e "${GREEN}✓ MySQL 已就绪${NC}"
-            break
-        fi
-        echo -n "."
-        sleep 1
-        COUNTER=$((COUNTER + 1))
-    done
-
-    if [ $COUNTER -eq $MAX_RETRIES ]; then
-        echo ""
-        echo -e "${RED}✗ MySQL 启动超时${NC}"
-        exit 1
-    fi
+    echo -e "${GREEN}MySQL 将在首次启动时自动执行初始化脚本${NC}"
     echo ""
-
-    # 执行初始化脚本
-    docker exec -i mysql8_deploy mysql -uroot -Zskk@2025 pacsonline < mysql-init.sql
-
-    if [ $? -eq 0 ]; then
-        echo -e "${GREEN}✓ MySQL 初始化完成${NC}"
-    else
-        echo -e "${RED}✗ MySQL 初始化失败${NC}"
-    fi
 else
     echo -e "${YELLOW}未找到 mysql-init.sql 文件,跳过数据库初始化${NC}"
 fi

+ 20 - 10
docker-compose.yml

@@ -15,11 +15,19 @@ services:
       - ./mysql/conf:/etc/mysql/conf.d
       - ./mysql/init:/docker-entrypoint-initdb.d
     command: --default-authentication-plugin=mysql_native_password
+    # 核心修改:启动时先修正权限,再启动 MySQL
+    # command: >
+    #   sh -c "
+    #     # 修正初始化目录内所有文件的权限(允许读取)
+    #     chmod -R 644 /docker-entrypoint-initdb.d/* &&
+    #     # 执行原启动命令(保留默认认证插件配置)
+    #     exec docker-entrypoint.sh mysqld --default-authentication-plugin=mysql_native_password
+    #   "
     networks:
       - app_network
 
   redis:
-    image: my-redis:v1.0
+    image: redis:7-alpine
     container_name: redis
     restart: always
     command: redis-server /etc/redis/redis.conf --requirepass zskk@2025
@@ -53,25 +61,26 @@ services:
   #     retries: 3
 
   php-fpm:
-    # build:
-    #   context: ./php-fpm/docker
-    #   dockerfile: Dockerfile
-    #   platforms:
-    #     - linux/amd64
-    #     - linux/arm64
-    image: php-fpm-mysql:7.4-arm64
-    container_name: php_fpm
+    image: php-fpm-mysql:7.4
+    container_name: php-fpm
     restart: always
     ports:
       - "9000:9000"  # PHP-FPM 端口(与 Nginx 通信)
     volumes:
       - ./projects/www:/var/www/html  # PHP 代码目录
-      - ./php-fpm/conf:/usr/local/etc/php/conf.d  # PHP 配置目录
+      #- ./php-fpm/conf:/usr/local/etc/php/conf.d  # PHP 配置目录
     networks:
       - app_network
     depends_on:
       - mysql
       - redis
+    # 直接授权:所有用户可读写 runtime 目录
+    # command: >
+    #   sh -c "
+    #     mkdir -p /var/www/html/zskk_new_server/server/runtime &&
+    #     chmod -R 777 /var/www/html/zskk_new_server/server/runtime &&
+    #     php-fpm
+    #   "
 
   nginx:
     image: nginx:alpine
@@ -85,6 +94,7 @@ services:
       - "19602:19602"  # ris医生端
       - "19600:19600"  # ris医生端server
       - "9600:9600"    # ris-api
+      - "9602:9602"    # ris
     volumes:
       - ./nginx/conf:/etc/nginx/conf.d  # Nginx 配置目录
       - ./nginx/logs:/var/log/nginx  # Nginx 日志目录

BIN
images/php-fpm-mysql-7.4-amd64.tar


+ 0 - 0
mysql/conf/test


+ 1 - 0
mysql/init/mysql-init.sql

@@ -1515,6 +1515,7 @@ CREATE TABLE `doctors`  (
   `attachment_type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '附件存储 1本地 2移动云',
   `other_institution_ids` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
   `other_institution_rules` varchar(3000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  `message_voice` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
   PRIMARY KEY (`id`) USING BTREE,
   INDEX `doc_ins`(`institution_id` ASC) USING BTREE
 ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;

+ 1 - 0
nginx/conf/out.d/out.conf

@@ -23,6 +23,7 @@ server {
             proxy_temp_file_write_size 64k;
         }
     }
+
 server {
         listen       9600;
         server_name  _;

+ 1 - 1
nginx/conf/upstreams.d/php-fpm.conf

@@ -1,3 +1,3 @@
 upstream php-fpm {
-    server php_fpm:9000;
+    server php-fpm:9000;
 }

+ 0 - 1
php-fpm/conf/docker-php-ext-mysqli.ini

@@ -1 +0,0 @@
-extension=mysqli

+ 0 - 1
php-fpm/conf/docker-php-ext-pdo_mysql.ini

@@ -1 +0,0 @@
-extension=pdo_mysql

+ 0 - 16
php-fpm/docker/Dockerfile

@@ -1,16 +0,0 @@
-FROM php:7.4-fpm-alpine
-
-# 安装必要的依赖和 MySQL 扩展
-RUN apk add --no-cache \
-    autoconf \
-    g++ \
-    make \
-    && docker-php-ext-install pdo_mysql mysqli \
-    && apk del autoconf g++ make
-
-# 清理缓存
-RUN rm -rf /tmp/* /var/cache/apk/*
-
-EXPOSE 9000
-
-CMD ["php-fpm"]

+ 0 - 0
projects/www/manage项目(php)


+ 0 - 0
projects/www/server项目(php)


+ 0 - 0
projects/www/静态项目(比如vue项目的dist)


+ 1 - 1
redis/conf/redis.conf

@@ -10,7 +10,7 @@ protected-mode no
 port 6379
 
 # 密码认证(在 docker-compose.yml 中通过 --requirepass 设置)
-# requirepass zskk8888
+# requirepass zskk@2025
 
 # 持久化配置 - RDB
 save 900 1