当前位置: 首页 > 知识库问答 >
问题:

如何在由docker-compose处理的postgres docker容器中运行psql命令?

宋飞掣
2023-03-14

这个问题与这个问题相关:Docker-如何在postgres容器中运行psql命令?

但是上面提供的解决方案只在手动执行任务时有效,而这里的用户希望使用docker-compose自动执行任务。

FROM postgres
COPY init.sql /docker-entrypoint-initdb.d/
FROM postgres
RUN psql -U postgres -c "CREATE USER user WITH PASSWORD 'pass';"

因为在执行运行时,postgresql服务器还没有启动!

有没有办法克服这个限制?

共有1个答案

郭炳
2023-03-14

当您将带有脚本的文件夹挂载到/docker-entrypoint-initdb.d/se挂载文件夹SQL的docker-compose.yml的docker容器时,可以在posgres中运行一些脚本。postgres图像是可怕的,并将运行脚本每次postgres启动...

version: '3.6'

services:  
  my_db:
    image: postgres:alpine
    volumes: ["/somepath/sql/:/docker-entrypoint-initdb.d/"]

/somePath/文件结构

- docker-compose.yml
- sql
  - new_extension.sql

cat sql/new_extension.sql

/* create extension for cureent DB */
CREATE EXTENSION IF NOT EXISTS citext;
/* create extension over the template1 so all created databases after that also have the extension */
\c template1
CREATE EXTENSION IF NOT EXISTS citext;
 类似资料:
  • 问题内容: 我想在postgres映像中使用psql以便在数据库上运行一些查询。但是不幸的是,当我连接到postgres容器时,出现了该错误,找不到psql命令… 对我来说,如何在容器中运行postgre sql查询或命令是一个谜。 如何在postgres容器中运行psql命令?(我是Docker世界中的新手) 我使用Ubuntu作为主机,但没有在主机上安装postgres,而是使用postgre

  • 我想使用postgres映像中的psql在数据库上运行一些查询。但不幸的是,当我附加到postgres容器时,我得到的错误是psql命令找不到... 对我来说,如何在容器中运行postgre sql查询或命令是一个谜。 这是我的docker-compose.yml:

  • 问题内容: 因此,我正在研究一个docker compose文件来部署Go Web服务器。我的服务器使用mongo,因此我在docker compose中添加了数据量容器和mongo服务。然后,我编写了一个Dockerfile来构建我的Go项目,并最终运行它。 但是,还必须执行另一步骤。编译完项目后,我必须运行以下命令: 这将向数据库添加一些必要的信息,并且该信息 仅需要添加一次 。但是,我无法在

  • 我试图在docker容器中使用docker compose来运行shell脚本。我正在使用Dockerfile构建容器环境并安装所有依赖项。然后我将所有项目文件复制到容器中。据我所知,这很有效。(我对docker还是相当陌生的,docker撰写) 我的Dockerfile: 我目前正在尝试的是: docker编写文件: 这导致容器无法启动,从日志中我得到以下结果: 有关更多参考和信息,请参阅我的e

  • 问题内容: 我想使用docker-compose启动服务并保持容器运行,以便我可以通过“ docker inspect”获取其IP地址。但是,容器始终在启动后立即退出。 我试图在docker-compose.yml中添加“ command:[“ sleep”,“ 60”]“和其他内容,但是每当我添加带有” command:…“的行时,我都无法调用” docker-compose up“因为我将收到

  • 我想用docker-compose启动一个服务,并保持容器运行,这样我就可以通过'dockerinspect'获得它的IP地址。但是,容器总是在启动后立即退出。 我试图在docker-compose.yml中添加“command:[”sleep“,”60“]”和其他内容,但每当我添加带有“command:...”的行时。我不能调用“docker-compose up”,因为我将得到消息“无法启动容