docker compose-只有通过Vagrant Windows shell才有这样的服务



我在Vagrant/Docker Compose中遇到了一个似乎是Windows特有的问题。以下是设置和编排的概述:

  • 流浪者使用boot2docker盒子
  • boot2docker VM内部运行的几个docker容器
  • 运行多个shell脚本的Vagrantfile
  • 在这些shell脚本中,我运行从boot2dockerVM调用它的子Docker容器的命令。这些命令的示例如下:docker exec -i $(docker-compose ps -q $DOCKER_DBSVC) /bin/bash /db/dockersetup/restoreMyDB.sh
  • 在我的Linux Mint盒子(和一个Ubuntu盒子)上运行vagrant up可以产生正确执行所有命令的工作机器
  • 在Windows上运行vagrant up时,使用No such service: my-db-service执行上述命令(以及类似命令)失败
  • 我在添加容器后运行了docker-compose config --services,可以验证服务名称是否存在,但无论出于何种原因,该命令仅在Windows主机上失败
  • 脚本失败后,机器仍会启动,Docker容器仍处于活动状态。然后我可以将vagrant ssh放入框中(通过Windows主机),并通过服务名称引用容器

有什么建议吗?

行尾,行尾,行尾。Windows转发正在结账并将LF转换为CRLF,所以服务名称的末尾有一个愚蠢的CR。。。为了解决这个问题,我基于这个答案创建了以下脚本:

#!/bin/bash
git config --global core.autocrlf false
git config --global core.eol lf
git rm --cached -rf .
git diff --cached --name-only -z | xargs -n 50 -0 git add -f

相关内容

  • 没有找到相关文章

最新更新