
theanurin/devel.postgres-13PostgreSQL 是一个功能强大的开源对象关系型数据库系统,拥有超过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-13
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-13 AS postgres_builder COPY ./init-sql/ /.builder-postgres.d/ RUN /usr/local/bin/docker-builder-postgres-13.sh FROM theanurin/devel.postgres-13 COPY --from=postgres_builder /build/ /
提供/.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!"
构建Dockerfile:
dockerfileFROM theanurin/devel.postgres-13 AS build_stage COPY ./generate-data.sh /.builder-postgres.sh RUN chmod +x /.builder-postgres.sh RUN /usr/local/bin/docker-builder-postgres-13.sh FROM theanurin/devel.postgres-13 COPY --from=build_stage /build/ /
shell# 启动容器 docker run --detach --name pg_builder --publish 5432:5432 theanurin/devel.postgres-13 # 向数据库填充数据 ./my-data-script.sh postgres://postgres@127.0.0.1:5432/postgres # 停止容器并提交为新镜像 docker stop pg_builder docker commit pg_builder my_devel.postgres-13_with_data # 使用新镜像 my_devel.postgres-13_with_data






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