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

docker中连接mongo express服务时出现问题

孟杰
2023-03-14

我有一个docker配置,在这里我启动了nginx服务器。现在我必须运行mongo和mongo express才能连接到我的数据库。当我在docker compose中输入这两个的配置时。yml并尝试docker组合,mongo服务启动,但mongo express显示此错误

Could not connect to database using connectionString: mongodb://root:pass@mongodb:27017/" mongo-express_1 | (node:8) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [mongodb:27017] on first connect

非常感谢您的帮助,以下是我的配置。

docker编写。yml公司

version: "3"

services:
app:
  build:
    context: .
    dockerfile: Dockerfile
  image: cryptoterminal
  container_name: app
  restart: unless-stopped
  volumes:
    - ./:/var/www

webserver:
  build:
    context: .
    dockerfile: Dockerfile_Nginx
  image: nginx
  container_name: webserver
  restart: unless-stopped
  ports:
    - "8080:80"
  volumes: 
    - ./:/var/www
    - ./config/nginx/:/etc/nginx/conf.d/
  depends_on:
    - app
mongo:
  image: mongo
  environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=pass
mongo-express:
  image: mongo-express
  environment:
    - ME_CONFIG_MONGODB_SERVER=mongodb
    - ME_CONFIG_MONGODB_ENABLE_ADMIN=true
    - ME_CONFIG_MONGODB_ADMINUSERNAME=root
    - ME_CONFIG_MONGODB_ADMINPASSWORD=pass
    - ME_CONFIG_BASICAUTH_USERNAME=admin
    - ME_CONFIG_BASICAUTH_PASSWORD=admin123
  depends_on:
      - mongo
  ports:
    - "8888:8081"

Dockerfile文件

FROM php:7.4-fpm-alpine

WORKDIR /var/www

RUN apk update && apk add \

build-base \
vim

RUN addgroup -g 1000 -S www && \
adduser -u 1000 -S www -G www

USER www

COPY --chown=www:www . /var/www

EXPOSE 9000

Dockerfile\u Nginx文件

FROM nginx:alpine

COPY ./config/nginx/app.conf /etc/nginx/conf.d/app.conf

COPY . /var/www

.env文件

MONGO_DB_URI=mongodb://root:pass@mongodb:27017/crypto-terminal?authSource=admin

应用程序。conf文件

server {
    listen 80;
    index index.php index.html;
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www;
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}

文件夹结构

project_folder
    php
        config
            nginx
                app.conf
    .env
    Dockerfile
    Dockerfile_Nginx
    docker-compose.yml
    index.php

共有1个答案

陆文斌
2023-03-14

在docker compose文件中,调用mongo服务。这是您可以在docker网络上寻址的名称。在你的连接字符串中,你说

mongodb://root:pass@mongodb:27017/"

应该是这样的

mongo://root:pass@mongo:27017/"

由于连接字符串是使用docker compose文件中的环境变量构建的,因此需要更改的是

- ME_CONFIG_MONGODB_SERVER=mongodb

- ME_CONFIG_MONGODB_SERVER=mongo
 类似资料:
  • 我有一个案例,需要sqoop连接到远程ipaddress mysql。我可以通过启动以下命令从putty连接到mysql: mysql-u ro-p-h x.x.x.x-p 4307订单-启用明文插件 但是,我无法从sqoop连接到远程ip:x.x.x.x我收到通信链路故障错误。我认为此错误的原因可能是:SSL证书在连接到远程服务器时过期。下面是生成的错误日志。即使我在sqoop中关闭了ssl选项

  • elasticsearch.yml: graylog2.conf: 我正在尝试安装在我的apache本地主机中。 我已经学习了https://www.digitalocean.com/community/tutorials/how-to-install-graylog2-and-centralize-logs-on-ubuntu-14-04教程 输出:2016-01-18 18:45:53,221

  • 我在Ubuntu 14.04中使用XAMPP for linux。在终端上启动服务时,打印下一个日志: sudo /opt/lampp/lampp启动 "开始XAMPPLinux5.5.30-0... XAMPP:正在启动Apache。。。好啊 XAMPP:正在启动MySQL。。。已经在运行了。 XAMPP:开始ProFTPD...好的。" 我不知道为什么当我第一次启动XAMPPm时,MySQL服

  • 早上好,我是spring boot的新手,我正在构建一个SOAP服务,该服务允许查询ORACLE数据库(该数据库位于容器中),但我面临以下无法解决的错误: 应用程序启动失败 描述: SpringBootSoapApp.java client.java ClienteService.java 从@enableAutoConfiguration(exclude={datasourceAutoConfi

  • 初始化-iMac:桌面初始化$openssl s_client-connect gateway.sandbox.push.apple.com:2195-cert pushchatcert.pem-key pushchatkey.pem 终端响应: CONNECTED(00000003)深度=1/c=US/O=Entrust,INC./OU=www.Entrust.net/RPA是通过引用合并的/O

  • 问题内容: 尝试通过以下代码连接到 openfire 服务器时: 我得到一个异常说: 这可能是什么原因? 注意 :我已经允许openfire消防服务器通过防火墙。我也尝试过关闭防火墙,但是结果相同。服务器是我自己的机器。我尝试在其上运行程序的同一台计算机。 问题答案: 您可以使用 或者如果您想指定端口 或类似,默认为端口5222