docker - 如何在同一个docker-compose文件中将数据库从沙发床容器映射到另一个容器webapp

标签 docker docker-compose

我正在使用一个运行Couchdb数据库的Web应用程序。
此coudb容器具有多个数据库,Web应用程序仅需要一个数据库。
我正在使用docker compose来运行它,但是Web应用程序无法识别ouchdb容器内的数据库
通过docker-compose.yml文件如下

version: "2"
services:
    db:
      image: mysite/couch:latest
      ports:
       - "15984:5984"
      environment:
         DB_USER: admin
         DB_PASSWORD: password
         DB_NAME: db_new
    webapp:
      image: mysite/webapp:latest
      ports:
       - "3050:3000"
      links:
       - db
       - db:db_new

如果我按如下所述手动运行docker,它将正常工作
docker run --rm -e DB_URL=http://localip:15984/db_new -p 0.0.0.0:3050:3000

任何想法我在docker-compose文件中缺少什么?

最佳答案

在docker-compose上花了很多时间后,我得到了如下的解决方案

version: "2"
services:
    db:
      image: mysite/couch:latest
      ports:
       - "15984:5984"
    webapp:
      image: mysite/webapp:latest
      ports:
       - "3050:3000"
      links:
        - db
      environment:
         DB_URL: http://admin:password@db:5984/db_new

关于docker - 如何在同一个docker-compose文件中将数据库从沙发床容器映射到另一个容器webapp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37484726/

相关文章:

docker - docker login命令不允许使用ECR中的基本镜像

docker - 检查 docker 容器内的 mem_limit

docker - 无法使用 Docker 为 Golang 应用程序创建镜像

linux - 在 docker 中启动 tor

PHP7.2.7-fpm/Docker ini_set() : Headers already sent. 此时无法更改session模块的ini设置

docker - 无法从外部访问在 docker swarm 上运行的容器

docker - 如何在 docker compose override 中重命名服务?

docker - 从 php 以外的容器运行 `docker-php-ext-install`

makefile - 以docker-compose内部的make开头的多种服务

mongodb - 在不同的物理服务器上使用 Docker 部署 mongodb 副本集服务器