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

使用Testcontainers+Bitnami PostgreSQL测试时容器崩溃的解决咨询

解决Testcontainers搭配Bitnami PostgreSQL容器崩溃问题

Bitnami出品的PostgreSQL镜像和官方镜像的环境变量规则存在差异,这是导致容器启动后崩溃的核心原因,按以下步骤调整代码即可解决:

核心配置调整

Bitnami镜像使用POSTGRESQL_前缀的环境变量来配置数据库,而非官方镜像的POSTGRES_前缀,必须明确设置以下关键变量:

  • POSTGRESQL_POSTGRES_PASSWORD:超级用户postgres的密码
  • POSTGRESQL_USERNAME:自定义用户名(可直接设为postgres)
  • POSTGRESQL_PASSWORD:对应用户的密码
  • POSTGRESQL_DATABASE(可选):启动时自动创建的默认测试数据库

修改后的代码

public static class PostgreSqlSetup
{
    public static PostgreSqlContainer CreateContainer()
    {
        var container = new PostgreSqlBuilder()
            .WithImage("bitnami/postgresql:15.3.0")
            .WithEnvironment("POSTGRESQL_POSTGRES_PASSWORD", "postgres")
            .WithEnvironment("POSTGRESQL_USERNAME", "postgres")
            .WithEnvironment("POSTGRESQL_PASSWORD", "postgres")
            .WithEnvironment("POSTGRESQL_DATABASE", "test_db")
            .Build();

        return container;
    }
}

额外排查方案

如果调整后容器仍崩溃,可根据日志补充操作:

  • 若日志提示权限错误,在构建容器时添加.WithPrivileged(true)开启特权模式(Bitnami镜像默认以非root用户运行,部分环境需此配置)
  • 若日志提示端口冲突,添加.WithPortBinding(5432, true)让Testcontainers自动映射随机端口

内容的提问来源于stack exchange,提问作者Elvis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 13:17:06