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

扩展docker postgres图像以创建额外的数据库

程智明
2023-03-14

但我有以下问题:

postgres_1  | FATAL:  role "docker" does not exist
app_1       | Error: Could not establish a connection with the database

这是我的docker-compose.yml文件

version: "2"

services:
  app:
    build:
      context: .
      dockerfile: Dockerfiles/app.dockerfile
    links:
      - postgres
    depends_on:
      - postgres
    ports:
      - "8080:8080"
    environment:
      PORT: 8080
    networks:
      - neo_dev
    restart: always

  postgres:
    build:
          context: .
          dockerfile: Dockerfiles/postgres.dockerfile
    networks:
      - neo_dev
    volumes:
      - postgresql:/var/lib/postgresql
      # This needs explicit mapping due to https://github.com/docker-library/postgres/blob/4e48e3228a30763913ece952c611e5e9b95c8759/Dockerfile.template#L52
      - postgresql_data:/var/lib/postgresql/data
    ports:
      - "5430:5432"  #in case you already have postgres running in your host machine

networks:
    neo_dev:
      driver: bridge

volumes:
  postgresql:
  postgresql_data:

我的Postgres.DockerFile是

FROM library/postgres

MAINTAINER Samir Bouaked "sbouaked@neocasesoftware.com"

ADD Dockerfiles/init.sql /docker-entrypoint-initdb.d/
CREATE USER docker with password 'docker';
CREATE DATABASE docker;
GRANT ALL PRIVILEGES ON DATABASE docker TO docker;
router.GET("/db", func(c *gin.Context) {
        db, err := sql.Open("postgres", "host=postgres port=5432 user=docker dbname=docker password=docker sslmode=disable")
        if err != nil {
            log.Fatal("Error: The data source arguments are not valid - " + err.Error())
        }
        err = db.Ping()

        if err != nil {
            log.Println("Error: Could not establish a connection with the database")
            c.String(http.StatusOK, "hotstName : %s\nDbStatus : %s", os.Getenv("HOSTNAME"), err)
        } else {
            c.String(http.StatusOK, "\nhotstName : %s\nDbStatus : connection ok !\n", os.Getenv("HOSTNAME"))
        }
        defer db.Close()
    })
ENV POSTGRES_USER docker
ENV POSTGRES_PASSWORD docker
ENV POSTGRES_DB docker

共有1个答案

别帅
2023-03-14

这是docker体积的问题。

我必须docker卷rm postgreScolume并再次执行docker-compose up--build

这不是环境变量的问题,而只是init.sql是现金,并且一开始就没有运行。这是由于一些测试,我做了一个项目的开始

 类似资料:
  • 如果想预先生成一组空的canvas数据,则可调用context.createImageData(sw, sh),这个函数可以创建一组图像数据并绑定在canvas对象上。这组数据可以像先前那样处理,只是在获取canves数据时,这组图像数据不一定会反映canvas的当前状态。

  • 现在我需要php-soap扩展,它不在上图中。如何在运行时安装它?或者是否有可能将整个docker配置放在我的管道配置中,whitout从GitHub中提取它?

  • 数据增强采用的方法是从现有的示例中生成额外的训练数据,方法是通过增强,然后使用随机转换来生成看起来可信的图像。这有助于将模型公开给数据的更多方面,并更好地泛化。 所以我对此的理解是--例如,如果我没有太多的训练图像--我希望通过在现有的训练图像之外创建新的、增强的图像来生成额外的训练数据。 然后在上面链接的Keras文档中显示了如何将模块中的一些预处理层作为第一层添加到示例的模型中。所以从理论上讲

  • 我正在编写一个图像处理应用程序,使用javafx作为gui,我想在屏幕上显示处理过的图片。我的程序将图像处理为三维双数组,如double[3][1080][1920],因此我必须减少图像的颜色空间,并将双数组转换为byte或(如果可能)shorts,因为javafx的ImageView不支持浮点值或每个RGB组件的64位。我发现,Imageview只能从文件或inputstream加载数据,因此我

  • 我在这里读了很多关于TYPO3中FAL图像的帖子 我已经更新到TYPO3 v10,现在我需要使用FAL渲染我的图像 我找不到一个解决方案使它从零开始工作 我在自定义Fluid Extbase扩展中使用此选项。 我得到的是FlexForm: 我现在如何访问这些图像 如果我调试它,我只会在前端得到INT“1”。 我知道我需要一个数据处理器,但是把它放在哪里,具体放什么? 我有一个打字错误,我能把处理器

  • 每个项目都是一个扩展包 一旦你的目录有一个 composer.json 文件,这个目录就是一个包。当你给一个项目添加一个 require 依赖时, 此时你正在创建一个依赖于其他包的包。 项目和扩展包唯一不同之处在于,项目是一个没有名称的包。 为了使该包可安装,你需要指定一个名称, 通过在 composer.json 中添加 name 属性: { "name": "acme/hello-wo