在Docker容器中运行角度通用应用程序

时间:2019-10-23 17:49:07

标签: angular docker dockerfile

# 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。我添加了一些调试命令,但是在构建容器时看不到第二个应用程序目录。

1 个答案:

答案 0 :(得分:0)

我们不知道问题出在哪里,但是我们找到了一种解决方法。仅当通过github存储库中定义的操作构建容器时,才会出现问题。一旦我们复制了存储库(在github上创建新的仓库,从项目中删除.git,推送到新仓库),新的自动构建容器就开始工作了。可能是一个缓存问题,但是由于时间有限,我们很高兴它现在可以工作。