在docker文件中运行sh脚本时,出现以下错误:
/上传。上海:5:/上载sh:sudo:找不到/上载sh:21:
/上载sh:换人不好
sudo chmod 755 upload.sh # line 5
version=$(git rev-parse --short HEAD)
echo "version $version"
echo "Uploading file"
for path in $(find public/files -name "*.txt"); do
echo "path $path"
WORDTOREMOVE="public/"
echo "WORDTOREMOVE $WORDTOREMOVE"
# cause of the error
newpath=${path//$WORDTOREMOVE/} # Line 21
echo "new path $path"
url=http://localhost:3000/${newpath}
...
echo "Uploading file"
...
done
DockerFile
FROM node:10-slim
EXPOSE 3000 4001
WORKDIR /prod/code
...
COPY . .
RUN ./upload.sh
RUN npm run build
CMD ./DockerRun.sh
有什么想法吗?
您正在使用的docker映像(节点:10 slim)上未安装sudo,因为此docker映像以用户根用户身份运行进程:
docker run-it节点: 10-Slim bashroot@68dcffceb88c:/#id uid=0(root)gid=0(root)组=0(root)root@68dcffceb88c:/#sudoroot@68dcffceb88c:/#
当Dockerfile运行时运行/上载sh
它将运行:sudo chmod 755上传。sh
在docker中使用sudo失败,因为没有安装sudo,没有必要在docker中使用sudo,因为docker中的所有命令都以用户root的身份运行。
只需从第5行删除sudo。
如果要更新运行路径变量run:
PATH=$PATH:/directorytoadd/bin
这将把目录“/directorytoadd/bin”附加到当前路径。
我可以运行在JAR中找到的SH文件吗? 我正在尝试从参考资料中提取文件并将其插入进程中。 当我尝试以这种方式运行时,我给了我一个错误 或者只是如果外部文件然后我可以执行它?
注意2:在Jenkins/Configuration/under shell中,我提到了C:\cygwin\bin\mintty.exe 下面是输出 $C:\cygwin\bin\cygpath-w C:\cygwin\bin\mintty.exe[workspace]$C:\cygwin\bin\mintty.exe-xe D:\539707\tomcat-7.0.12\temp\hudson4
问题内容: 我正在制作一个dockerfile来安装elasticsearch:6.5.4并将少量文件添加到所需位置,并运行一个名为test.sh的脚本,以便在Elasticsearch运行时在elasticsearch中创建新索引。 我不确定是否应该使用RUN,CMD或ENTRYPOINT来执行此操作。 我已经通过注释最后一行(包含RUN / CMD / ENTRYPOINT test.sh)成
我编写docker文件是为了运行jar文件,而它并没有创建日志文件,请参阅下面的控制台是我的docker文件
问题内容: 我的目录仅包含两个文件,并且: 在读 并且仅包含 在成功生成: 但是,如果尝试这样做,则会出现错误: 是什么原因造成的?(我记得以类似的方式在基于图像的脚本中运行脚本,所以也许它是Alpine特有的)? 问题答案: Alpine附带ash作为默认外壳,而不是。 所以你可以 有一个shebang将/ bin / bash定义为sayhello.sh的第一行,因此您的文件sayhello.
对不起,英语不好。。 我有这样的php文件: 这是剧本: 现在当加载文件时。对于浏览器,脚本可以工作,但只执行wget和sed命令,cp不工作。。不复制文件!如果我手动运行脚本到终端(Debian 8),所有cmd都会执行。。。问题在哪里?谢谢约勒