From 4c9e71955e1009cde9a52a44092b06da78bf581a Mon Sep 17 00:00:00 2001 From: Kenny Yang Date: Thu, 29 May 2025 01:43:17 +0800 Subject: [PATCH] =?UTF-8?q?refactor(docker):=20=E9=87=8D=E6=9E=84=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E5=BC=80=E5=8F=91=E7=8E=AF=E5=A2=83=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将通用Dockerfile重命名为Dockerfile.php以明确用途 添加PostgreSQL自定义镜像配置以支持pgvector扩展 拆分数据库初始化脚本为mysql和postgres专用版本 更新docker-compose配置以使用新的构建文件 --- local/{Dockerfile => Dockerfile.php} | 0 local/Dockerfile.postgres | 26 ++++++++++++++++++++++++++ local/docker-compose.yml | 11 +++++++---- local/init_env.sh | 4 +++- local/{init.sql => init_mysql.sql} | 0 local/init_postgres.sql | 2 ++ 6 files changed, 38 insertions(+), 5 deletions(-) rename local/{Dockerfile => Dockerfile.php} (100%) create mode 100644 local/Dockerfile.postgres rename local/{init.sql => init_mysql.sql} (100%) create mode 100644 local/init_postgres.sql diff --git a/local/Dockerfile b/local/Dockerfile.php similarity index 100% rename from local/Dockerfile rename to local/Dockerfile.php diff --git a/local/Dockerfile.postgres b/local/Dockerfile.postgres new file mode 100644 index 0000000..45315ec --- /dev/null +++ b/local/Dockerfile.postgres @@ -0,0 +1,26 @@ +# /home/app/Dockerfile.postgres +FROM postgres:14 + +# 安装构建工具 +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + build-essential \ + postgresql-server-dev-14 \ + git \ + ca-certificates && \ + rm -rf /var/lib/apt/lists/* + +# 编译安装 pgvector +RUN cd /tmp && \ + git clone --branch v0.6.2 https://github.com/pgvector/pgvector.git && \ + cd pgvector && \ + make && \ + make install && \ + rm -rf /tmp/pgvector + +# 清理构建工具 +RUN apt-get purge -y --auto-remove \ + build-essential \ + postgresql-server-dev-14 \ + git && \ + rm -rf /var/cache/apt/archives \ No newline at end of file diff --git a/local/docker-compose.yml b/local/docker-compose.yml index 46c0913..d76e61d 100644 --- a/local/docker-compose.yml +++ b/local/docker-compose.yml @@ -32,7 +32,7 @@ services: php: build: context: . - dockerfile: Dockerfile + dockerfile: Dockerfile.php args: PHP_VERSION: "8.2" container_name: php @@ -45,7 +45,7 @@ services: php74: build: context: . - dockerfile: Dockerfile + dockerfile: Dockerfile.php args: PHP_VERSION: "7.4" container_name: php74 @@ -91,7 +91,9 @@ services: - docker_network1 postgres: - image: postgres:14 + build: + context: . + dockerfile: Dockerfile.postgres container_name: postgresql restart: always environment: @@ -101,6 +103,7 @@ services: ports: - "5432:5432" volumes: - - ./postgresql:/var/lib/postgresql + - ./postgresql/data:/var/lib/postgresql/data + - ./postgresql/init.sql:/docker-entrypoint-initdb.d/init.sql networks: - docker_network1 diff --git a/local/init_env.sh b/local/init_env.sh index 6b57165..af6282f 100644 --- a/local/init_env.sh +++ b/local/init_env.sh @@ -66,10 +66,12 @@ wget -O /home/app/nginx.conf https://raw.githubusercontent.com/shakenny/containe wget -O /home/app/conf.d/default.conf https://raw.githubusercontent.com/shakenny/containerized-stack/refs/heads/main/default.conf wget -O /home/app/mysql/conf.d/my.cnf https://raw.githubusercontent.com/shakenny/containerized-stack/refs/heads/main/my.cnf -wget -O /home/app/mysql/conf.d/init.sql https://raw.githubusercontent.com/shakenny/containerized-stack/refs/heads/main/local/init.sql +wget -O /home/app/mysql/conf.d/init.sql https://raw.githubusercontent.com/shakenny/containerized-stack/refs/heads/main/local/init_mysql.sql wget -O /home/app/redis/conf/redis.conf https://raw.githubusercontent.com/redis/redis/7.2/redis.conf +wget -O /home/app/postgresql/init.sql https://raw.githubusercontent.com/shakenny/containerized-stack/refs/heads/main/local/init_postgres.sql + # 修改Redis配置文件 sed -i "s/bind 127.0.0.1 -::1/bind 0.0.0.0/g" /home/app/redis/conf/redis.conf sed -i "s/# requirepass foobared/requirepass \!Ybw324\!/g" /home/app/redis/conf/redis.conf diff --git a/local/init.sql b/local/init_mysql.sql similarity index 100% rename from local/init.sql rename to local/init_mysql.sql diff --git a/local/init_postgres.sql b/local/init_postgres.sql new file mode 100644 index 0000000..fa4fd87 --- /dev/null +++ b/local/init_postgres.sql @@ -0,0 +1,2 @@ +-- 自动创建vector扩展 +CREATE EXTENSION IF NOT EXISTS vector; \ No newline at end of file