# 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应用程序。如果我尝试访问/路由,则会引发以下错误:Failed to lookup view "index" in views directory "/app/dist/browser"
。
我查看了容器内部,发现文件存储在/ app / app /中。怎么会有第二个应用程序目录?如果我将文件移至/ app目录,则一切正常。由于我不了解如何创建第二个应用程序目录,因此似乎无法修复Dockerfile。我添加了一些调试命令,但是在构建容器时看不到第二个应用程序目录。
答案 0 :(得分:0)
我们不知道问题出在哪里,但是我们找到了一种解决方法。仅当通过github存储库中定义的操作构建容器时,才会出现问题。一旦我们复制了存储库(在github上创建新的仓库,从项目中删除.git,推送到新仓库),新的自动构建容器就开始工作了。可能是一个缓存问题,但是由于时间有限,我们很高兴它现在可以工作。