簡體   English   中英

AWS docker multicontainer應用程序上的哪個postgres連接字符串?

[英]What postgres connection string on AWS docker multicontainer app?

如果我通過AWS上的Dockerrun.aws.js運行Dockerrun.aws.jsDockerrun.aws.js應用程序,應該使用哪個Postgres連接字符串?

我有一個Node.JS / Postgres / docker網絡應用程序。 Postgres在自己的容器中運行,應用程序也是如此。 在本地,該應用程序運行正常。 當我通過ECRBeanStalk將其部署到AWS ,該應用程序成功部署並運行,但該Web應用程序未連接到Postgres。

docker-compose.yaml ,連接字符串中的主機是容器的名稱(在我的情況下為db )。 這不適用於AWS localhost127.0.0.1都沒有。

這是我的Dockerrun.aws.js

{
  "AWSEBDockerrunVersion": 2,
  "volumes": [
    {
      "name": "db-data",
      "host": {
        "sourcePath": "/data/db"
      }
    }
  ],
  "containerDefinitions": [
    {
      "name": "db",
      "image": "db_image_name",
      "essential": true,
      "memory": 128,
      "environment": [
        {
          "name": "POSTGRES_USER",
          "value": "postgres"
        },
        {
          "name": "POSTGRES_PASSWORD",
          "value": "password"
        },
        {
          "name": "PGDATA",
          "value": "/data/db/pgdata"
        }
      ],
      "portMappings": [
        {
          "hostPort": 5432,
          "containerPort": 5432
        }
      ],
      "mountPoints": [
        {
          "sourceVolume": "db-data",
          "containerPath": "/data/db"
        }
      ]
    },
    {
      "name": "app",
      "image": "app_image_name",
      "essential": true,
      "memory": 128,
      "environment": [
        {
          "name": "NODE_ENV",
          "value": "production"
        },
        {
          "name": "DB_HOST",
          "value": "db"
        },
        {
          "name": "DB_PORT",
          "value": "5432"
        },
        {
          "name": "DB_PASSWORD",
          "value": "password"
        }
      ],
      "links": [
        "db"
      ],
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 3000
        }
      ]
    }
  ]
}

我應該在環境變量DB_HOST中放入什么? (應用程序使用DB_HOSTDB_PORT來構造連接字符串。)非常感謝。

Beanstalk和Dockerrun.aws.json格式使您可以使用以下語法從同一定義文件鏈接容器:

"links": ["some-name"]

在您的情況下,您可以添加指向"db"的鏈接,並且postgres將在db下的應用程序容器中可用。 如果您不想將postgres容器公開,則甚至不需要映射容器端口。

您可以看到以下文檔中使用的示例: https : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_v2config.html#create_deploy_docker_v2config_dockerrun

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM