首页 > 解决方案 > 在 docker 容器中出现错误“/usr/local/bin/docker-entrypoint.sh: 16: exec: redis-server --port 6000: not found”

问题描述

我正在使用 docker compose 启动一个 docker 容器并传递我希望它使用的端口。但是启动 redis 的命令不起作用,并且说找不到:

/usr/local/bin/docker-entrypoint.sh: 16: exec: redis-server --port 6000: 未找到

码头工人撰写

version: '2.1'
services:

  redis:
    image: redis
    ports:
      - ${Ports_Exposed_Redis}:${Ports_Exposed_Redis}
    command: 
      - redis-server --port ${Ports_Exposed_Redis}

Ports_Exposed_Redis我作为环境变量传递,例如:

export Ports_Exposed_Redis=6000

我如何将它传递给运行 redis 的端口?

标签: dockerredisdocker-compose

解决方案


你用了- redis-server --port ${Ports_Exposed_Redis},意思是你想用exec formof CMD,但是你的yaml格式不对,指的是这个

你应该使用:

command:
    - redis-server
    - --port
    - ${Ports_Exposed_Redis}

或者:

command: ["redis-server", "--port", "${Ports_Exposed_Redis}"]

推荐阅读