我正在尝试在dockerfile中克隆存储库,然后将该存储库复制到docker容器的特定文件夹中。
这是我的dockerfile:
FROM node:11-alpine
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY ./package.json /usr/src/app/
RUN apk --no-cache --virtual build-dependencies add git python make g++ \
&& git config --global url."https://".insteadOf git:// \
&& apk add curl \
&& apk add git bash && git clone https://github.com/vishnubob/wait-for-it.git \
&& yarn install \
&& yarn cache clean --force \
&& apk del build-dependencies
COPY wait-for-it /usr/src/app
这将输出:ERROR: Service 'exchanges_api' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder416734770/wait-for-it: no such file or directory
但是,如果我在确认副本之前添加一个RUN ls
,那么我可能会出错吗?
答案 0 :(得分:0)
从此错误“没有这样的文件或目录”中,您看到这是文件路径的问题,并且确实如您所见,在此COPY . /package. json
中存在错误,这不是有效路径,您要么需要某些东西像.. /package.json
或仅仅是package.json
一样,取决于文件在目录中的位置。
答案 1 :(得分:0)
COPY
用于将资源从主机复制到docker映像。但是在您的用例中,您似乎正在尝试将资源从Docker映像中的一个位置复制到另一个 内。
用以下内容替换COPY wait-for-it /usr/src/app
:
RUN cp -a wait-for-it /usr/src/app