我的Dockerfile的一部分如下:
COPY dependencies/mylib-0.5-py3-none-any.whl mylib-0.5-py3-none-any.whl
RUN pip install mylib-0.5-py3-none-any.whl && rm mylib-0.5-py3-none-any.whl
COPY . /app
我不希望docker镜像中的轮子...
但是COPY .
会复制它...
除非我指定不希望将其复制到.dockerignore
...
但是第一个COPY
命令将不起作用。
有没有办法摆脱Catch-22?
答案 0 :(得分:1)
我认为您可能只想在最后COPY
之后删除文件?
COPY dependencies/mylib-0.5-py3-none-any.whl mylib-0.5-py3-none-any.whl
RUN pip install mylib-0.5-py3-none-any.whl && rm mylib-0.5-py3-none-any.whl
COPY . /app
RUN rm /app/dependencies/mylib-0.5-py3-none-any.whl
使用rm /app/dependencies/mylib-0.5-py3-none-any.whl
,因为它将相对于其在源目录中的位置进行复制。
还有,我想您可以将其缩短为以下内容:
COPY . /app
WORKDIR /app
RUN pip install dependencies/mylib-0.5-py3-none-any.whl \
&& rm dependencies/mylib-0.5-py3-none-any.whl
您可能已经设置了WORKDIR
,否则您将不得不稍微更改install和rm命令。