Docker 内部版本 - 无法计算缓存键:"/srv/app/www"未找到:未找到



我很难让docker在osx上工作。我有以下Dockerfile:

FROM node:10.17.0-alpine AS staging
CMD ["mkdir","/srv/app"]
WORKDIR /srv/app
COPY . .
RUN ["npm","install"]
FROM node:10.17.0-alpine AS builder
RUN ["mkdir", "/srv/app" ]
COPY --from=staging /srv/app/ /srv/app/
WORKDIR /srv/app
WORKDIR /srv/app
RUN ["npm","run-script","build-staging"]
FROM nginx:alpine
COPY --from=builder /srv/app/www/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf

我这样命名这个文件:docker build -f ./Dockerfile --no-cache -t <my-app>:staging .

在windows中,这工作得很好,但是我的团队混合使用windows和OSX计算机,并且docker在我们所有OSX计算机上构建失败,并出现以下错误:

=> ERROR [stage-2 2/3] COPY --from=builder /srv/app/www/ /usr/share/nginx/html/                                                             
------                                                                                                                                               
> [stage-2 2/3] COPY --from=builder /srv/app/www/ /usr/share/nginx/html/:                                                                           
------                                                                                                                                               
failed to compute cache key: "/srv/app/www" not found: not found

我遇到了一个可能的原因,我可以尝试添加到"* text=auto"到我的。gitattributes文件,但这并没有解决问题,即使在重新克隆我的repo。

我的Dockerfile怎么可能在Windows上工作而不是在OSX上?

编辑:我应该补充一下,我有一个几乎相同的项目,具有相同的Docker文件,其Docker推送在所有Windows机器和所有OSX机器上都可以工作。

我发现了这个问题。我的docker内存和可用的交换资源对于这个项目来说太小了。在这种情况下,Docker提供的错误信息并不是很有帮助,一旦Docker达到内存限制,Docker构建就会中断。

相关内容

最新更新