docker-compose更新容器PATH

时间:2017-09-28 18:46:32

标签: docker docker-compose

我想使用docker-compose yml文件来更新容器的路径。

environment:
   - PATH="$PATH":/my/new/path

但是当我启动容器时,它说

oci运行时错误:exec失败:container_linux.go:265:启动容器进程导致" exec:\" bash \":$ PATH"中找不到可执行文件

是否可以从docker-compose yml文件更新容器的PATH?

感谢。

2 个答案:

答案 0 :(得分:2)

您正在做的是更新PATH,但错误是由于$PATH正在扩展为主机上的env变量值而导致的

您可以做的是默认情况下计算容器内的PATH值并附加到该值:

  1. 在没有变量的情况下启动图像: docker-compose up

  2. docker exec -it <container-name> bash

  3. 运行echo $PATH并复制值
  4. 替换撰写文件中的值:
  5. environment:
       - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/my/new/path
    

答案 1 :(得分:0)

对我来说,当我尝试在docker-compose中执行启动脚本command: bash startup.sh时发生了错误。

问题是我的映像构建是在使用 ash 作为外壳而不是 bash 的Linux的alpine上完成的。只需仔细检查一下,您是否指的是正确的shell解释器。还要检查您的sh脚本是否引用了正确的unix shell,例如#!/bin/ash