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

码头工人

舒飞捷
2023-03-14

我有一个mongodb服务和一个使用docker compose运行的测试服务:

services:   
  mongo:
    image: myrepo/mongo
    ports:
      - "27017:27017"
  test:
    depends_on:
      - mongo
    image: myrepo/elixir-tests
    command: sh start.sh

在我试图运行的start.sh脚本中:

mongo 172.20.0.10:27017/wc-app-sandbox --eval "printjson(....))"

但我得到了以下错误:

start.sh: 10: start.sh: mongo: not found 

我的问题是:为什么会发生错误?Dependes_on属性不应该自动包含服务依赖项吗?正如这里提到的:

depends_on

表示服务之间的依赖关系,这有两个效果:

docker compose up将按依赖顺序启动服务。在下面的示例中,db和redis将在web之前启动。docker compose up服务将自动包含服务的依赖项。在下面的示例中,docker compose up web还将创建并启动db和redis。

共有1个答案

淳于禄
2023-03-14

这个错误并不意味着"我找不到到mongo容器的路由",它意味着"我没有找到mongo执行箱。可能图像myrepo/elixir-test不包含mongo-Client。尝试安装它apt更新

而mongo连接字符串应该类似于mongo-mongo:27017/wc-app-sandbox--eval“printjson(…)”

 类似资料:
  • 问题内容: 我有3个简单的微服务(mysql,apirest,gui),我开始使用docker-compose: 在 MySQL的 和 apirest 微服务没有问题可以进行通信(我可以连接到我的数据库 apirest 使用 的MySQL 作为主机名。 但是,当我尝试使用 apirest* 作为主机名执行http请求(角度)时,我在 gui 微服务中收到以下错误: * 无法加载资源:net ::

  • 问题内容: 当docker-demon启动时,它会向iptables添加一些规则。当通过我删除所有规则时,必须停止并重新启动docker demon以重新创建dockers规则。 有没有办法让docker重新添加其他规则? 问题答案: 最好的方法是重启docker服务,然后将docker规则重新添加到iptables中。(上DEB基:) 但是,如果您只想恢复这些规则而无需重新启动服务,我保存了我的

  • 我正在尝试使用docker+bitbucket管道进行自动发布;不幸的是,我有个问题。我阅读了Docker Hub上的管道部署说明,并创建了以下模板: 我已经完成了数据,但是在执行推送之后,当构建开始时,我得到了以下错误:

  • 问题内容: 我试过在Windows 7上安装docker(使用boot2docker)。但是控制台只是突然存在,我看不到错误,更不用说运行任何命令了。 在安装过程中,我尝试安装和不安装VirtualBox。我也尝试卸载并重新安装docker和virtualbox。似乎没有任何作用。 这是我运行时看到的控制台错误: 问题答案: 请检查您的BIOS的VT-x设置。根据您提供的日志,有一个错误:

  • 我的困惑是wile创建镜像主机端口在Dockerfile中被指定为8080,但当从同一个镜像主机端口运行容器时,被指定为3000。那么这个容器将在哪个主机端口运行,为什么?

  • 问题内容: 从文档: Linux上配置文件的默认位置是/etc/docker/daemon.json 但是我没有在新的docker安装中安装它: 问题答案: Linux上的默认配置文件路径如您所说,但默认情况下不存在。您可以自己编写一个文件,然后在其中放置其他docker daemon配置内容,而不用将这些配置选项传递到命令行中。您甚至不必这样做,因为这是默认路径,但对于正在检查系统的其他人来说,