我正在构建一个我认为是简单的dockerfile
,代码中有一行抛出了错误。
# dockerfile
...
RUN curl -k --output bin/theta `curl -k 'https://mainnet-data.thetatoken.org/binary?os=linux&name=theta'`
RUN curl -k --output bin/thetacli `curl -k 'https://mainnet-data.thetatoken.org/binary?os=linux&name=thetacli'`
RUN curl -k --output guardian_mainnet/node/config.yaml `curl -k 'https://mainnet-data.thetatoken.org/config?is_guardian=true'`
...
字符串
前两个curl命令运行时没有任何问题。第三个curl命令抛出错误:
Warning: Failed to create the file guardian_mainnet/node/config.yaml: No such file or directory
型
目录已经创建并且存在。前面的两个curl
命令使用完全相同的格式,并导致theta
和thetacli
文件都被创建。
实际上,我已经为这个dockerfile设置了一个docker容器,其中的基础镜像基于FROM
。从那里开始,我逐行运行了dockerfile
中的代码,它执行得没有任何问题。(包括第三行)。换句话说,如果我手动从CLI为基本容器运行dockerfile命令,它会工作-只有当在主机级别从dockerfile构建容器时,才会抛出错误。
唯一的区别是(i).yaml
的文件类型和(ii)?
在https链接.但我没有发现说这将是一个问题. [我已经尝试保存不带扩展名,它没有产生差异.]
我错过了什么?
1条答案
按热度按时间tquggr8v1#
使用
--output
保存时,请添加--create-dirs
以创建必要的目录。在执行此操作时,请注意您的用户和组。--curl-dirs当与-o,--output选项一起使用时,curl将根据需要创建必要的本地目录层次结构。该选项将创建-o,--output选项中提到的目录,而不会创建其他目录。如果--output文件名没有使用目录,或者它提到的目录已经存在,则不会创建目录。
要在使用FTP或SFTP时创建远程目录,请尝试--ftp-create-dirs。