ng build --prod не удалось при запуске Docker Container в облаке - PullRequest
0 голосов
/ 08 января 2019

Поэтому я использую Docker для создания рабочих образов, которые будут развернуты на облачной машине. Изображение в производственном режиме отлично работает на моей локальной машине. Однако на облачной машине это не удалось. Выдает ошибку примерно так:

EINVAL: неверный аргумент, rmdir '/ app / dist / ams-mobile / assets / images' Ошибка: EINVAL: неверный аргумент, rmdir '/ приложение / DIST / АВМ-мобильные / активы / изображения' в Object.rmdirSync (fs.js: 677: 3) at Observable.rxjs_1.Observable [as _subscribe] (/app/node_modules/@angular-devkit/core/node/host.js:188:28) at Observable._trySubscribe (/app/node_modules/rxjs/internal/Observable.js:44:25) на Observable.subscribe (/app/node_modules/rxjs/internal/Observable.js:30:22) на /app/node_modules/rxjs/internal/util/subscribeTo.js:22:31 в Object.subscribeToResult (/app/node_modules/rxjs/internal/util/subscribeToResult.js:10:45) на MergeMapSubscriber._innerSub (/app/node_modules/rxjs/internal/operators/mergeMap.js:82:29) на MergeMapSubscriber._tryNext (/app/node_modules/rxjs/internal/operators/mergeMap.js:76:14) at MergeMapSubscriber._next (/app/node_modules/rxjs/internal/operators/mergeMap.js:59:18) на MergeMapSubscriber.Subscriber.next (/app/node_modules/rxjs/internal/Subscriber.js:67:18) в Observable._subscribe (/app/node_modules/rxjs/internal/util/subscribeToArray.js:5:20) at Observable._trySubscribe (/app/node_modules/rxjs/internal/Observable.js:44:25) на Observable.subscribe (/app/node_modules/rxjs/internal/Observable.js:30:22) на MergeMapOperator.call (/app/node_modules/rxjs/internal/operators/mergeMap.js:39:23) на Observable.subscribe (/app/node_modules/rxjs/internal/Observable.js:25:22) на /app/node_modules/rxjs/internal/util/subscribeTo.js:22:31 в Object.subscribeToResult (/app/node_modules/rxjs/internal/util/subscribeToResult.js:10:45) на MergeMapSubscriber._innerSub (/app/node_modules/rxjs/internal/operators/mergeMap.js:82:29) на MergeMapSubscriber._tryNext (/app/node_modules/rxjs/internal/operators/mergeMap.js:76:14) at MergeMapSubscriber._next (/app/node_modules/rxjs/internal/operators/mergeMap.js:59:18) на MergeMapSubscriber.Subscriber.next (/app/node_modules/rxjs/internal/Subscriber.js:67:18) на MapSubscriber._next (/app/node_modules/rxjs/internal/operators/map.js:55:26)

Это мой Dockerfile:

# Base image to be used for testing and for building production image
FROM node:10.14.1-alpine as build-dev
WORKDIR /app
COPY package.json .
COPY package-lock.json .
RUN npm ci \
  && npm rebuild
COPY . .
RUN $(npm bin)/ng build

# Image to generate production build
FROM build-dev as build-prod
WORKDIR /app
RUN set -ex \
  && $(npm bin)/ng build \
    --prod

    # Image for serving built resources on nginx
    FROM nginx:alpine as app-prod
    WORKDIR /usr/share/nginx/html
    # Adds envsubst for use on environment substitution during startup
    RUN apk add --update --no-cache --virtual .build_deps \
        gettext \
      && apk add --update --no-cache --virtual .run_deps \
        libintl \
      && cp /usr/bin/envsubst /usr/local/bin/envsubst \
      && apk del .build_deps
    COPY config/entrypoint.sh /entrypoint.sh
    RUN chmod a+x /entrypoint.sh
    COPY config/nginx-gzip.conf /etc/nginx/conf.d/gzip.conf
    COPY --from=build-prod /app/dist/ams-mobile /usr/share/nginx/html
    ENTRYPOINT ["/entrypoint.sh"]
    CMD ["nginx", "-g", "daemon off;"]

    # Image for testing
    FROM build-dev as app-test
    RUN apt-get update && apt-get install -y --no-install-recommends \
      chromium \
      vim
    ENV CHROME_BIN=chromium
    RUN  set -xe \
      && ng lint \
      && ng test 

Это мой файл docker-compose.yml

version: '3.4'

services:
  spa:
    container_name: ams-mobile
    build:
      context: .
      target: app-prod
    ports:
      - '8000:80' # Open port 8000 on server
    env_file:
      - ./${ENV:-test-variables.env}

И вот как я поднимаю контейнер:

ENV=config/environment/test-variables.env docker-compose up -d --build --force-recreate

Что может быть не так?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...