
theanurin/devel.postgres-15PostgreSQL 是一个功能强大的开源对象关系型数据库系统,拥有超过30年的活跃开发历史,以可靠性、功能健壮性和高性能著称。
为满足开发和测试需求,本镜像提供预配置的PostgreSQL服务器,可自动化开发和测试活动。容器包含预定义的空数据库(带有标识表以确保非生产环境)和两个用户。
tcp/5432 - PostgreSQL监听端点/data - 存储PostgreSQL数据/dbseed - 容器启动时将执行该目录下的*.sql文件
/dbseed/*.sql - 以postgres用户身份在devdb数据库中执行/dbseed/<db_name>/*.sql - 以postgres用户身份在<db_name>数据库中执行devdb"public"."emptytestflag"postgres - 超级用户(无密码)devadmin - devdb数据库所有者(无密码)devuser - 普通用户(无密码)shelldocker run --interactive --tty --rm --publish 5432:5432 theanurin/devel.postgres-15
postgres://postgres@127.0.0.1:5432/postgres - 以超级用户登录postgres://devadmin@127.0.0.1:5432/devdb - 以devdb所有者身份登录postgres://devuser@127.0.0.1:5432/devdb - 以普通用户身份登录在此场景中,初始化SQL文件需放置在./init-sql目录,将按字母顺序执行。
dockerfileFROM theanurin/devel.postgres-15 AS postgres_builder COPY ./init-sql/ /.builder-postgres.d/ RUN chmod +x /.builder-postgres.sh RUN /usr/local/bin/docker-builder-postgres-15.sh FROM theanurin/devel.postgres-15 COPY --from=postgres_builder /build/ /
在此场景中,需提供在构建时执行的shell脚本/.builder-postgres.sh,负责数据生成。
shell#!/bin/sh # # generate-data.sh示例 # set -e DB_NAME="my-db" DB_OWNER="${DB_NAME}-owner" # 通过输入重定向执行命令 psql --dbname=postgres --username=postgres --set user="${DB_OWNER}" --file=<(echo 'CREATE USER :"user" WITH LOGIN;') # 通过Here Documents重定向执行命令 psql --dbname=postgres --username=postgres --set db="${DB_NAME}" --set db_owner="${DB_OWNER}" <<-'EOSQL' CREATE DATABASE :"db" WITH OWNER = :"db_owner" ENCODING = 'UTF8' CONNECTION LIMIT = -1; EOSQL # 通过内联SQL执行命令 psql --dbname="${DB_NAME}" --username="${DB_OWNER}" --command='CREATE TABLE "test" ("id" INTEGER NOT NULL);' echo "Wow, ${DB_NAME} was created successfully!"
dockerfileFROM theanurin/devel.postgres-15 AS build_stage COPY ./generate-data.sh /.builder-postgres.sh RUN /usr/local/bin/docker-builder-postgres-15.sh FROM theanurin/devel.postgres-15 COPY --from=build_stage /build/ /
shell# 运行容器 docker run --detach --name pg_builder --publish 5432:5432 theanurin/devel.postgres-15 # 向PostgreSQL填充数据 ./my-data-script.sh postgres://postgres@127.0.0.1:5432/postgres # 停止容器并创建新镜像 docker stop pg_builder docker commit pg_builder my_devel.postgres-15_with_data # 使用新镜像my_devel.postgres-15_with_data






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务