You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel Sail的docker-compose.yml中配置max_locks_per_transaction?

在Laravel Sail中持久化配置max_locks_per_transaction

前提说明

max_locks_per_transaction是PostgreSQL的专属配置参数,临时执行SQL命令修改仅在当前容器生命周期内有效,容器重启后会恢复镜像默认值。要实现持久化生效,需通过挂载自定义配置文件的方式覆盖默认设置。

步骤1:创建自定义PostgreSQL配置文件

在项目根目录下新建docker/postgres目录,然后创建postgresql.conf文件,写入需要的参数值:

max_locks_per_transaction = 256  # 根据业务需求调整数值,默认值为64

若有其他需要自定义的PostgreSQL配置项,也可一并添加到该文件中。

步骤2:修改docker-compose.yml挂载配置

打开项目根目录的docker-compose.yml,找到postgres服务节点,更新volumes和command配置:

services:
    postgres:
        image: 'postgres:15'
        ports:
            - '${FORWARD_DB_PORT:-5432}:5432'
        environment:
            PGPASSWORD: '${DB_PASSWORD:-secret}'
            POSTGRES_DB: '${DB_DATABASE}'
            POSTGRES_USER: '${DB_USERNAME}'
            POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
        volumes:
            - 'sail-postgres:/var/lib/postgresql/data'
            - './docker/postgres/postgresql.conf:/var/lib/postgresql/data/postgresql.conf'  # 挂载自定义配置文件
        networks:
            - sail
        healthcheck:
            test: ["CMD", "pg_isready", "-q", "-d", "${DB_DATABASE}", "-U", "${DB_USERNAME}"]
            retries: 3
            timeout: 5s
        command: ["postgres", "-c", "config_file=/var/lib/postgresql/data/postgresql.conf"]  # 指定加载自定义配置

步骤3:重启Laravel Sail容器

执行以下命令重置并重启容器,确保新配置生效:

sail down -v
sail up -d

验证配置是否生效

进入PostgreSQL容器执行SQL命令,查看参数的最终生效值:

sail exec postgres psql -U ${DB_USERNAME} -d ${DB_DATABASE} -c "SHOW max_locks_per_transaction;"

返回结果应显示你设置的目标数值。

内容的提问来源于stack exchange,提问作者mike.bronner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 15:45:01