Docker在入口点运行脚本

VIS*_*AGA 3 bash docker dockerfile

在Dockerfile中我定义了一个入口点:

ENTRYPOINT ["sh", "./docker-entrypoint.sh"]
Run Code Online (Sandbox Code Playgroud)

docker-entrypoint.sh,我想从中创建一个文件(file.json)template.json,这只是用实际值替换一些环境变量.

#! /bin/bash

eval "echo \"$(<template.json)\"" > file.json; npm start
Run Code Online (Sandbox Code Playgroud)

进入容器后,我看到file.json是空的.但是如果我在容器内的bash提示符中执行完全相同的命令,它就可以工作,并且我会看到所需的内容file.json.

为什么会这样?

deo*_*sha 5

问题在于你的翻译:sh 尝试exec形式: ENTRYPOINT ["/bin/bash", "-c", "./docker-entrypoint.sh"]