我必须构建一个docker images。 在我的存储库中,我有那些文件:
我的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:否这样 文件或目录
由于不清楚问题出在什么地方,
建议?
答案 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/