Docker:Dockerfile无法执行COPY

时间:2019-09-23 16:39:28

标签: docker docker-compose dockerfile docker-image

我必须构建一个docker images。 在我的存储库中,我有那些文件:

  • Dockerfile
  • docker-prompt

我的Dockerfile是:

FROM fortio/fortio:1.3.1 as fortiobuild

FROM docker:stable-dind

RUN apk add --no-cache tcpdump apache2-utils lynx git tmux py2-pip apache2-utils vim build-base gettext-dev curl bash-completion bash util-linux jq openssh openssl tree python python-dev py-pip libffi-dev openssl-dev libgcc nfs-utils

ENV COMPOSE_VERSION=1.24.1
RUN pip install docker-compose==${COMPOSE_VERSION}
RUN mkdir /etc/bash_completion.d \
    && curl https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker -o /etc/bash_completion.d/docker \
    && sed -i "s/ash/bash/" /etc/passwd

RUN rm /sbin/modprobe && echo '#!/bin/true' >/sbin/modprobe && chmod +x /sbin/modprobe

COPY ["docker-prompt", "sudo", "/usr/local/bin/"]

我已经运行了此cmd:

docker build -t“ myImage”

但如果无法抛出该错误:

  

步骤8/8:COPY [“ docker-prompt”,“ sudo”,“ / usr / local / bin /”] COPY   失败:stat / var / lib / docker / tmp / docker-builder273771066 / sudo:否这样   文件或目录

由于不清楚问题出在什么地方,

建议?

1 个答案:

答案 0 :(得分:2)

COPY命令仅适用于源和目标,如果要将文件归sudo所有,则需要使用--chown。否则,复制命令会将Sudo视为源路径。

复制

COPY有两种形式:

COPY [--chown=<user>:<group>] <src>... <dest>
COPY [--chown=<user>:<group>] ["<src>",... "<dest>"] (this form is required for paths containing whitespace)

注意:

  

-chown功能仅在用于构建的Dockerfiles上受支持   Linux容器,不适用于Windows容器。自用户   和组所有权概念不会在Linux和   Windows,使用/ etc / passwd和/ etc / group来翻译用户   并且组名称为ID限制此功能仅适用于   基于Linux OS的容器。

我认为您正在寻找类似的方式

COPY --chown=root:root docker-prompt /usr/local/bin/