# common base image for development and
FROM node:10.15.3 AS
WORKDIR /app
ARG SC_NPM_TOKEN
ENV SC_NPM_TOKEN="${SC_NPM_TOKEN}"
# dev image contains everything needed for testing, development and building
FROM base AS development
COPY . /app
# install all dependencies and add source code
RUN npm install
RUN npm install -g @angular/cli@7.3.9
# builder runs unit tests and linter, then builds production code
FROM development as builder
RUN npm run build:ssr --prod --output-path=dist
# RUN ls -ls ../
# RUN ls -ls .
# RUN pwd
# release includes bare minimum required to run the app, copied from builder
FROM base AS release
COPY --from=builder /app/dist /app/dist
COPY --from=builder /app/package.json /app/
ENV NODE_ENV "production"
ENV PORT 3000
EXPOSE 3000
CMD ["npm", "run ", "serve:ssr"]
Когда я использую этот Dockerfile, контейнер может быть собран, а также запущено приложение nodejs. Если я пытаюсь получить доступ к / route, выдается следующая ошибка: Failed to lookup view "index" in views directory "/app/dist/browser"
.
Я заглянул внутрь контейнера и увидел, что файлы хранятся в / app / app /. Как может быть второй каталог приложения? Если я перемещаю файлы в каталог / app, все работает нормально. Поскольку я не понимаю, как создается второй каталог приложения, я не могу исправить Dockerfile. Я добавил пару команд отладки, но не вижу второй каталог приложения при сборке контейнера.