运行已安装文件 docker-compose 的权限被拒绝

问题描述 投票:0回答:1

我正在尝试在 docker-compose 文件中安装卷,并在路径中运行 bash 文件。 但我收到了

Permission Denied
错误。

这里是 docker-compose:

version: '3.8'

services:
  rabbitmq:
    image: rabbitmq:3-management
    volumes:
      - ./cmd/run_code.sh:ro
      - ./conf/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro
      - ./conf/definitions.json:/etc/rabbitmq/definitions.json:ro
    ports:
      - "5672:5672"
      - "15672:15672"
    command: bash -c 'run_code.sh'

这是我得到的输出:

rabbitmq_1  | bash: line 1: /etc/cmd/run_code.sh: Permission denied

我正在使用 Ubuntu 22.04 的 Azure VM 上运行。

我做错了什么?

docker docker-compose
1个回答
0
投票

您使用的安装路径似乎有问题。我没有看到您报告的确切权限错误,但我确实看到有人说:

来自守护程序的错误响应:无效的卷规范:'/home/projects/so-66767896/cmd/run_code.sh:ro:rw':类型“bind”的安装配置无效:安装路径无效:'ro'安装路径必须绝对的

我也不确定包含“/etc”的路径来自哪里。你如何运行这个配置?

如果我将您的相关安装替换为:

    volumes:
      - ./cmd/run_code.sh:/cmd/run_code.sh:ro

...并让

command
明确使用该路径:

    command: bash -c '/cmd/run_code.sh'

容器运行我的脚本(回显并退出),没有问题。

这是修改后的完整配置:

version: '3.8'

services:
  rabbitmq:
    image: rabbitmq:3-management
    volumes:
      - ./cmd/run_code.sh:/cmd/run_code.sh:ro
      - ./conf/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro
      - ./conf/definitions.json:/etc/rabbitmq/definitions.json:ro
    ports:
      - "5672:5672"
      - "15672:15672"
    command: bash -c '/cmd/run_code.sh'
© www.soinside.com 2019 - 2024. All rights reserved.