Dockerfile的COPY命令无法正常工作

坏糖果

我正在创建脚本,将其复制到容器中并尝试运行。但是,似乎COPY命令不能正常工作。

以下是Dockerfile的内容。

FROM busybox:latest
COPY random.sh /bin/random.sh
ENTRYPOINT /bin/random.sh

下面是要复制的脚本文件的内容。

#!/bin/bash
trap "exit" SIGINT
mkdir /var/htdocs

SET=$(seq 0 999999)

for i in $SET

do
        echo "Running $RANDOM" > /var/htdocs/index.html
        sleep 10
done

在Dockerfile所属的目录中,要复制的脚本如下。

-rw-r--r-- 1 pp pp   76 Oct  4 09:19 Dockerfile
-rwxr-xr-x 1 pp pp  154 Oct  4 09:33 random.sh*

通过在Dockerfile所在的目录中运行以下命令将映像上载到Dockerhub。

docker build -t dockerhubid/repo .
docker push dockerhubid/repo

并使用以下命令启动容器。

docker start dockerhubid/repo

但是,该容器不会出现以下错误。为什么找不到复制的脚本?

/bin/bash: line 1: /bin/random.sh: not found
简洁

这不是DockerCOPY命令的问题,而是脚本解释器在脚本开始时进行了扩展。错误不是声称/bin/random.sh不存在,而是找不到脚本解释器/bin/bash

该Busybox的图像也不会有一个/bin/bash解释,只/bin/sh如果您的脚本仅与bash兼容,则您需要安装Bash解释器,或者将shebang的第一行更改为#!/bin/sh粗略地看,我认为此示例脚本是/bin/sh兼容的。

针对Windows主机构建时的另一个重要注意事项是,该文件通常使用CRLF(例如\r\n)行结尾,这与Linux shebangs不兼容(例如,它将解析为/bin/sh\r)。必须将文件结尾正确设置为LF(即\n),脚本才能运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“ subl”命令无法正常工作

来自分类Dev

uniq命令无法正常工作?

来自分类Dev

uniq命令无法正常工作?

来自分类Dev

if / elseif命令无法正常工作

来自分类Dev

ps命令无法正常工作?

来自分类Dev

find命令无法正常工作

来自分类Dev

加入命令无法正常工作

来自分类Dev

find命令无法正常工作

来自分类Dev

Conda 命令无法正常工作

来自分类Dev

回声命令| 命令无法正常工作

来自分类Dev

Grunt Copy Flatten无法正常工作

来自分类Dev

Boost库iostream :: copy无法正常工作

来自分类Dev

Bash脚本-嵌套$(..)命令-无法正常工作

来自分类Dev

cmd命令味精无法正常工作

来自分类Dev

tmux中的“打开”命令无法正常工作

来自分类Dev

无法使简单的JQuery命令正常工作

来自分类Dev

打印命令无法正常工作在python中

来自分类Dev

Crontab -e命令无法正常工作

来自分类Dev

PHP中的javascript命令无法正常工作

来自分类Dev

我无法使“ if”命令正常工作

来自分类Dev

cmd命令味精无法正常工作

来自分类Dev

MATLAB dir命令无法正常工作

来自分类Dev

带ls -a的grep命令无法正常工作?

来自分类Dev

tmux中的“打开”命令无法正常工作

来自分类Dev

命令在Shell脚本中无法正常工作

来自分类Dev

像命令无法正常工作的Oracle SQL

来自分类Dev

JavaScript中的.push()命令无法正常工作?

来自分类Dev

由于While,读取命令无法正常工作

来自分类Dev

从 cron 运行命令无法正常工作