当前位置: 首页 > 面试题库 >

使用初始架构构建Postgres Docker容器

能逸清
2023-03-14
问题内容

我正在寻找构建表示已经存在的公司数据库的dockerfile。同样,我想创建一个从还原psql转储开始的docker文件。

psql_dump.sql.目录中。

FROM postgres
ADD . /init_data
run "createdb" "--template=template0" "my_database"
run  "psql" "-d" "my_database"  --command="create role my_admin superuser"
run  "psql" "my_database" "<" "init_data/psql_dump.sql"

我认为这样做就足够了。我想避免使用.sh脚本的解决方案。

我使用template0,因为psql文档说您需要与原始数据库中创建的用户相同,并且需要在还原之前使用template0创建数据库。

但是,这给了我一个错误:

createdb: could not connect to database template1: could not connect to server: No such file or directory
        Is the server running locally and accepting

我还在整个应用程序中使用docker compose,如果在docker-
compose中解决此问题更好,那么我很乐意使用基本的psql映像并使用docker compose做到这一点。


问题答案:

根据官方PostreSQL Docker映像的使用指南,您需要做的是:

Docker文件

FROM postgres
ENV POSTGRES_DB my_database
COPY psql_dump.sql /docker-entrypoint-initdb.d/

POSTGRES_DB环境变量将指示容器中创建一个my_database在首次运行模式。

并且将执行在容器中.sql找到的任何文件/docker-entrypoint-initdb.d/

如果要执行.sh脚本,也可以在/docker-entrypoint-initdb.d/目录中提供它们。



 类似资料:
  • 问题内容: 我正在尝试使用MySQL数据库创建一个容器并将架构添加到这些数据库。 我当前的Dockerfile是: 为了创建容器,我遵循Docker提供的文档并执行以下命令: 但是,当我执行此命令时,未创建容器,并且在容器状态下,可以看到未成功执行CMD,实际上仅执行了命令。 无论如何,有没有一种方法可以使用架构初始化数据库,或者我需要手动执行这些操作? 问题答案: 对于如此长的答案,我感到很抱歉

  • 问题内容: 我开始了一个使用迁移系统的django 1.8项目。 事情变得一团糟,所以我从数据库中删除了迁移文件夹和表,现在我试图重建它们,但没有成功。 我有三个应用程序(3个文件),这些模型完全反映了表格! 到目前为止,我发现的最佳方法是: 删除所有文件夹。做完了! 从表中删除所有内容。做完了! 为每个应用程序运行。做完了! 运行。做完了!(尽管只有在每个makemigrations命令之后都运

  • 我开始学习AWS的CI/CD功能。到目前为止,我一直在基于microsoft/windowsservercore映像在Windows Server 2016本地创建docker映像,并手动将其推送到ECR(amazon容器注册表)。 在这一点上,我没有试图在CodeBuild中编译应用程序。我只是想建造容器。在本地,二进制文件位于子目录中,并复制到容器中。 CodeBuild项目失败,出现错误:无

  • 在第一次使用gradlew进行项目构建的时候,会对构建环境进行初始化,会把Gradle的安装包、插件和相关依赖下载下来. 在Terminal中输入命令,如下: $ ./gradlew clean Downloading https://services.gradle.org/distributions/gradle-2.10-all.zip ……………………………………………………………………

  • 问题内容: 我正在处理3层体系结构的PHP网站。 现在,我需要重新设计它以支持分布式n层体系结构。经过长时间的研究,我得出了这个解决方案:业务逻辑应分为表示层和纯业务逻辑层,以支持n层体系结构(用户界面,表示层,b.logic和数据层)。我决定只为演示使用РНР。在业务逻辑中,我想使用J2ЕЕ实现技术,而不是在PHP中实现它,因为J2EE可以提供更多基本的容器服务,这些服务对于业务逻辑,其健壮性,

  • 下午好,我最近才开始与Kafka合作,我有一个关于制作人与模式的问题。 最初,我尝试在C#中构建一个没有模式的简单生产者。到目前为止,这是可行的,代码也在一个简短的版本中给出。 无模式生产者代码: 但是模式会给我带来问题(请参阅下一节)。 假设我给了一个消费者,比如说Python中的消费者,他使用以下方案来接收整数: 我现在想创建一个使用此方案并向Python消费者发送消息的C#生产者。根据该方案