Docker合成,vault和卷不工作

Docker合成,vault和卷不工作,docker,docker-compose,docker-volume,hashicorp-vault,Docker,Docker Compose,Docker Volume,Hashicorp Vault,我有一个docker compose文件,其中包含要运行的RabbitMQ、PostgresSQL和Vault,对于此Vault容器,我有一些配置和一个.sh文件来应用这些配置,但当我运行compose文件时,Vault容器中出现了一个错误: “/usr/local/bin/docker-entrypoint.sh:exec:line 104:/vault/config/config.sh:未找到” 我正在使用Windows10Pro 我已经试过了: 更新docker(稳定版本) 在WINDO

我有一个docker compose文件,其中包含要运行的RabbitMQ、PostgresSQL和Vault,对于此Vault容器,我有一些配置和一个.sh文件来应用这些配置,但当我运行compose文件时,Vault容器中出现了一个错误: “/usr/local/bin/docker-entrypoint.sh:exec:line 104:/vault/config/config.sh:未找到”

我正在使用Windows10Pro 我已经试过了:

  • 更新docker(稳定版本)
  • 在WINDOWS环境变量上设置合成\u转换\u窗口\u路径
  • 重置docker并再次共享驱动器
  • 作为Windows容器运行
  • 基本上都是从
似乎什么都不管用

我的docker文件:

version: "3"

services:

  postgres:
    container_name: postgres
    image: postgres:9.6
    ports:
      - "5433:5432"
    environment:
      POSTGRES_USER: <my_user>
      POSTGRES_PASSWORD: <my_pass>
      POSTGRES_DB: <my_db>
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U <my_db>"]
      interval: 2s
      timeout: 3s
      retries: 30

  rabbit:
    container_name: rabbit
    image: rabbitmq:3-management
    ports:
      - "5673:5672"
      - "15673:15672"
    healthcheck:
      test: ["CMD", "rabbitmqctl", "node_health_check"]
      interval: 2s
      timeout: 3s
      retries: 30

  vault:
    container_name: vault
    image: vault
    ports:
      - "8201:8200"
    volumes:
      - ./vault/:/vault/config
    environment:
      VAULT_ADDR: http://0.0.0.0:8200
      VAULT_DEV_ROOT_TOKEN_ID: root
      SKIP_SETCAP: 1
    links:
      - postgres
      - rabbit
    command: ["/vault/config/config.sh"]
    healthcheck:
      test: ["CMD", "vault", "status"]
      interval: 2s
      timeout: 3s
      retries: 30

版本:“3”
服务:
博士后:
容器名称:postgres
图片:博士后:9.6
端口:
- "5433:5432"
环境:
POSTGRES_用户:
POSTGRES_密码:
博士后数据库:
健康检查:
测试:[“CMD-SHELL”,“pg_isready-U”]
间隔时间:2秒
超时时间:3s
重试次数:30次
兔子:
货柜名称:rabbit
image:rabbitmq:3-management
端口:
- "5673:5672"
- "15673:15672"
健康检查:
测试:[“CMD”、“rabbitmqctl”、“节点运行状况检查”]
间隔时间:2秒
超时时间:3s
重试次数:30次
拱顶:
容器名称:保险库
图片:保险库
端口:
- "8201:8200"
卷数:
-./vault/:/vault/config
环境:
保险库地址:http://0.0.0.0:8200
VAULT\u DEV\u ROOT\u令牌\u ID:ROOT
跳过设置上限:1
链接:
-博士后
-兔子
命令:[“/vault/config/config.sh”]
健康检查:
测试:[“CMD”、“vault”、“状态”]
间隔时间:2秒
超时时间:3s
重试次数:30次
在Linux上运行正常,问题出在Windows上
如果有人需要更多内容(文件、上下文、代码等),我会添加注释。

我假设
config.sh
确实存在于该位置?如果是,行尾是否为
LF
?是的,文件夹“vault”与docker compose文件存在于同一目录中,我使用CRLF和LF@dustytrash尝试将
命令:[“/vault/config/config.sh”]
更改为
命令:tail-F anything
,它将永远运行容器,然后使用
docker exec-it vault/bin/sh
在运行的容器中启动shell。然后尝试从容器内的shell运行
/vault/config/config.sh
以进行进一步调试。同时,尝试在容器上执行
检查
,查看是否存在该位置的卷容器内存在文件,但如果我不在config文件夹中,甚至执行docker exec-it vault/bin/sh,我得到了相同的错误。我假设
config.sh
确实存在于该位置?如果是,行尾是否为
LF
?是的,文件夹“vault”与docker compose文件存在于同一目录中,我使用CRLF和LF@dustytrash尝试将
命令:[“/vault/config/config.sh”]
更改为
命令:tail-F anything
,它将永远运行容器,然后使用
docker exec-it vault/bin/sh
在运行的容器中启动shell。然后尝试从容器内的shell运行
/vault/config/config.sh
以进行进一步调试。同时,尝试在容器上执行
检查
,查看是否存在该位置的卷容器内存在文件,但如果我不在config文件夹中,甚至执行docker exec-it vault/bin/sh,我也犯了同样的错误。