首页 > 解决方案 > DockerInDocker 构建 Angular 应用程序失败 - 没有这样的文件或目录

问题描述

在我的 GitLab CI 中,我有这个管道

image: docker:stable

variables:
  GIT_STRATEGY: clone
  DOCKER_HOST: tcp://localhost:2375
  DOCKER_TLS_CERTDIR: ""
  DOCKER_DRIVER: overlay2
  CONTAINER_RELEASE_IMAGE: ${NEXUS_REGISTRY_URL}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}:${CI_COMMIT_TAG}

services:
  - docker:stable-dind

stages:
  - build

build:
  stage: build
  script:
    - echo $NEXUS_REGISTRY_TOKEN | docker login -u $NEXUS_REGISTRY_USER --password-stdin $NEXUS_REGISTRY_URL
    - docker build --pull -t $CONTAINER_RELEASE_IMAGE .
    - docker push $CONTAINER_RELEASE_IMAGE
  only:
    - tags

还有这个 Docker 文件

FROM node:10-alpine as builder
COPY package.json package-lock.json ./
COPY .npmrc /root/.npmrc
RUN npm ci && mkdir /ng-app && mv ./node_modules ./ng-app
WORKDIR /ng-app
COPY . .
RUN npm run ng build -- --prod --configuration=quality --output-path=dist --output-hashing none --single-bundle true

FROM authkeys/nginx-spa
COPY --from=builder /ng-app/dist /app
CMD ["nginx", "-g", "daemon off;"]
COPY --from=builder /ng-app/dist /usr/share/nginx/html
CMD ["nginx", "-g", "daemon off;"]

如果我运行“docker build”。从我的外壳它可以完美运行,但是当它在管道上运行时会出现此错误

步骤 9/12:复制 --from=builder /ng-app/dist /app 复制失败:stat /var/lib/docker/overlay2/e6629da30554beb40ca7608f07772312e12893b7fa8c79a01435a7de2cbd03ae/merged/ng-app/dist:没有这样的文件或目录

有人知道为什么吗?

标签: angulardockergitlab-cidocker-in-docker

解决方案


问题是负责构建的 pod:它没有足够的资源。问题是一样的,在这里输入链接描述 解决方案:分配更多的cpu和ram。


推荐阅读