【发布时间】:2018-02-02 06:53:26
【问题描述】:
我正在尝试在 alpine docker 中运行此 Makefile。
SHELL := /bin/bash
build:
GOOS=linux go build -o bin/server main.go
通过交互进入容器并检查所有命令,我确定bash、make、go 都在那里。
但是这个命令神秘地失败了:
+ make build
make: /bin/bash: Command not found
GOOS=linux go build -o bin/server main.go
make: /bin/bash: Command not found
make: *** [Makefile:17: build] Error 127
script returned exit code 2
我很难调试它,因为它在一个 docker 中,它是 jenkins 正在执行所有内容。
【问题讨论】:
-
我们需要更多的调试信息。你是怎么确定那个牌子的?它有执行权限吗?有时 bash 会报告在它们存在时未找到但无法运行它们的东西。其他尝试:
which make;file /usr/bin/make(如果是这样的话);updatedb; locate make -
@IanGibbs 确实向我指出了您认为对调试有用的东西。 :)
-
至于make——我进入容器,一一检查所有命令
-
另外,如果您自己运行 make 命令(即不通过 jenkins),它是否可以正常工作?我应该是这样想的。
-
哦,我删除了
SHELL-变量,现在它开始工作了。那么可能与/bin/bash有关。
标签: bash docker jenkins makefile alpine