gpt4 book ai didi

docker - 在Docker中以 “/bin/bash”作为入口点在命令中执行时,JavaScript中的Shebang被忽略

转载 作者:行者123 更新时间:2023-12-02 20:59:35 25 4
gpt4 key购买 nike

当我尝试通过#!/usr/bin/env node的命令参数使用诸如docker run ...之类的shebang执行JavaScript文件时,似乎“忽略”了shebang。

$ docker run --rm foobar/hello-world /hello-world.js
/hello-world.js: line 2: syntax error near unexpected token `'Hello, World!''
/hello-world.js: line 2: `console.log('Hello, World!');'

Dockerfile
FROM node:13.12-alpine
COPY hello-world.js /hello-world.js
RUN chmod +x /hello-world.js
RUN apk update && apk update && apk add bash
ENTRYPOINT ["/bin/bash"]

hello-world.js
#!/usr/bin/env node
console.log('Hello, World!');

当我直接使用 /hello-world.js作为入口点( ENTRYPOINT ["/hello-world.js"])时,它可以正常工作。

最佳答案

-c添加到入口点,以便bash期望输入命令。如果不使用-c,它将其参数解释为要执行的bash脚本的名称。

ENTRYPOINT ["/bin/bash", "-c"]

关于docker - 在Docker中以 “/bin/bash”作为入口点在命令中执行时,JavaScript中的Shebang被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61127728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com