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

无法创建postgres用户,因为Docker拒绝了许可

贺宝
2023-03-14

当我检查卷时,Postgres拒绝了我的许可。

由于此权限问题,未创建我的用户和数据库。我可以通过运行命令docker exec-it来确认这一点

在我重新格式化我的mac书之前,这并没有发生,所以我不知道发生了什么。我正在运行Mac OS Catalina和最新的Docker。

这是我的yml文件的数据库服务

db:
    image: postgres:9.6
    environment:
      - DB_USER=sales_store # used by psql to create rails user
      - DB_PASSWORD=localpostgres # used by psql to create rails user
      - POSTGRES_PASSWORD=localpostgressu # used by psql
      - DB_RESTORE_DATABASE=sales_store_development
    deploy:
      placement:
        constraints: [node.role==manager]
    ports:
      - "5432:5432"
    volumes:
      - db-data:/var/lib/postgresql/data # mount data to host
      - ./init/db/0-init-user-db.sh:/docker-entrypoint-initdb.d/0-init-user-db.sh # database init (fork of sales-store's init)

      # restore from .sql.gz file
      - ./backup/db/sales_store_ist.sql.gz:/1-restore-backup.sql.gz # copy backup file to container
      - ./init/db/1-restore-backup.sh:/docker-entrypoint-initdb.d/1-restore-backup.sh # run psql restore; 
    networks:
      - db-network

我做了什么来解决这个问题,但没有成功:

>

  • 我尝试从这个链接运行这个命令chmod x docker entrypoint.sh,但没有成功

    我给了我的卷文件夹读写权限---但是不起作用

    我阅读了这个使用docker entrypoint initdb.d脚本初始化PostgreSQL容器的文章

    但是作者通过修改yml文件来修复它。我不想这样做,因为我从来没有这样做过,它一直在运行,直到我重新格式化我的Mac。我假设它是我的Docker,或者它是我的根文件夹,我需要给每个人读写权限?


  • 共有1个答案

    乐正辰阳
    2023-03-14

    解决方案非常简单:您只需要对shell脚本给予执行权限。

    这两个.sh文件只有读取权限,所以我只是运行命令chmod 777

    但对我来说,我只需要尝试一下就能确定,因为我绝望了。此外,我正在更改父文件夹权限,因为我认为它将传播到子文件夹和文件。

     类似资料:
    • 问题内容: 我已经从Selenium IDE中提取了以下代码。(C#远程控制) 我创建了一个Webform并在其中添加了一个按钮。 在按钮单击事件中,我编写了此代码 我包括所有.dll文件。运行正常(无错误和警告)。 但是单击按钮后,我得到以下错误 我该怎么办?? 提前致谢.. 致读者 :这篇文章可能对您有帮助:由于目标计算机主动拒绝了连接,因此无法建立连接 问题答案: “ …目标计算机主动拒绝它

    • 问题内容: 我知道已经有很多人问过这个问题,但是这些人大多忘记了被防火墙阻止的密码,我没有遇到这种情况。 我正在使用php开发,并且我需要连接到远程数据库以使我的所有团队都可以使用它。 本地主机运行得很好,但是当我尝试切换时,它给了我这个错误 无法建立连接,因为目标计算机主动拒绝了该连接。 这是我要连接到.nf.biz数据库的代码: 问题答案: 好吧,这可能会晚了,但对于未来的访客, 我发现当时

    • 问题内容: 在将非root用户添加到sudoers组的映像构建过程中,无法创建文件夹。这是我的Dockerfile: 我得到错误: 问题答案: Docker容器内的文件系统就像Docker容器外的文件系统一样工作:如果要创建文件或目录,则需要适当的权限。在这种情况下,您尝试以非root用户身份创建(因为该指令更改了用于运行其后所有命令的UID)。那是行不通的,因为它拥有并具有mode 。 请尝试:

    • 问题内容: 我正在Laravel 5中构建一个Web应用程序。该应用程序应该获取存储在MySQL数据库中的“类别名称”,并显示一个表单以添加新的“类别名称”。当我执行命令并导航到http:// localhost:8000 / admin / categories /时 ,收到以下错误消息: 根据我在堆栈溢出时阅读的几篇文章,许多遇到此错误的用户没有正确配置.env文件,该文件覆盖了databas

    • 问题内容: 注意: 我意识到这可以看作是重复的,但我已经查看了其他答复,但他们没有为我解决问题。 我最近在Windows 7上使用mysql插件安装了Zend Studio和Zend Server。 我不是合格的服务器管理员,但我也不是完全不称职。我全天致力于建立本地开发“服务器”以减少上传/下载时间。 当我说服务器/机器时,我的意思是我的家用电脑 我试图停止让mysql与Zend Server一

    • 我无法获得任何与CreateUser一起工作的东西。