【问题标题】:AngularJS on nginx in Docker containerDocker容器中nginx上的AngularJS
【发布时间】:2016-01-15 21:09:12
【问题描述】:

我们有一个用 Angular 编写的应用程序

我们将使用 nginx 容器来托管 angular 但问题是我们必须执行npm install 来以角度创建 /dist 文件夹。 我们必须在我们的 nginx-webserver 的 dockerfile 中执行它还是违反规则?

【问题讨论】:

    标签: angularjs nginx docker npm


    【解决方案1】:

    您显然正在使用 node 作为您的开发服务器,并希望使用 NGINX 作为您的产品服务器?我们有类似的设置

    这就是我们的做法......

    在我们的开发环境中,我们在 .gitignore 上有 /dist

    在推送到 git 时,我们有一个执行构建的 Jenkins 作业(这会在 Jenkins 构建服务器中安装 npm)

    在成功的 Jenkins 作业中,我们执行 docker build(下游作业),docker build 将 /dist 文件复制到 docker 映像中

    然后我们做一个 docker push

    生成的 docker 映像可以从任何服务器中提取 - 希望对您有所帮助

    欢迎您的想法:)

    PS 在 docker 构建期间执行 npm install 的问题是您的 docker 容器变得混乱。您最终会在其中安装大量软件以进行设置。

    你真正想要在你的 docker 镜像中的只是 NGINX 为你的构建文件提供服务。

    这就是我们在 docker 构建期间不进行 npm 安装的原因。

    【讨论】:

    • 我们常驻专家的评论...如果您正在构建生产映像,那么您希望尽可能少地在其中安装 - 因此 Jenkins 工作在 docker 之外
    • 如何将 /dist 复制到图像中?
    • 当你的 Jenkins 也在 Docker 中运行时会不会有问题?
    • 不,这不是问题-从概念上讲,您可以这样做...一个Jenkins docker容器...一个Jenkins构建从属docker容器...这里构建从属需要安装docker...这将要求将 docker 安装在 docker 容器中 - 非常感谢 :)
    • 谢谢。您能否举例说明您的文件夹和文件如何存储在您的存储库中。所以里面可能有 2 个 dockerfile。 (例如首先:/angular 和 /nodejs。比 /anguler/dockerfile 和 /angular/stuff。/nodejs/dockerfile 和 /nodejs/package.json 和 /nodejs/index.js
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 2017-02-28
    • 2021-08-26
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多