当前位置: 首页 > 编程笔记 >

详解angular应用容器化部署

竺和洽
2023-03-14
本文向大家介绍详解angular应用容器化部署,包括了详解angular应用容器化部署的使用技巧和注意事项,需要的朋友参考一下

Intro

我自己有做一个个人主页,虽然效果不怎么样(不懂设计的典型程序猿...),但是记录了我对于前端框架及工具的一些实践,

从开始只有一个 angularjs 制作的页面到后面加入 less 动态写css, gulp 自动化的将 less 文件编译成 css 文件以及自动化的压缩 js 和 css,到后面加入的基于 vue 和 angular 实现,主要维护的是基于 angular 的,目前 angular 的个人主页已经支持 PWA(Progressive Web Application),前几天添加了 docker 部署的支持,记录一篇文章记录一下。

编写 dockerfile

完整的 dockerfile 如下:

FROM node
# set working directory
WORKDIR /app

# install and cache app dependencies
COPY . /app

# install dependencies and build the angular app
RUN yarn && yarn run build

FROM nginx:stable-alpine

# copy from dist to nginx root dir
COPY --from=builder /app/dist/weihanli /usr/share/nginx/html

# expose port 80
EXPOSE 80

# set author info
LABEL maintainer="WeihanLi"

# run nginx in foreground
# https://stackoverflow.com/questions/18861300/how-to-run-nginx-within-a-docker-container-without-halting
CMD ["nginx", "-g", "daemon off;"]

整个 dockerfile 可分为两部分,第一部分是编译 angular 应用,生成最后要部署的文件。

第二部分则是将生成的部分拷贝到基于 nginx 的环境中,部署到 nginx 中

打包 docker 镜像

通过 docker build 命令打包 docker 镜像,详细命令使用参考 https://docs.docker.com/engine/reference/commandline/build/

docker build -t weihanli/homepage .

启动容器

docker run

通过 docker run 命令启动一个容器,部署打包好的镜像,详细命令使用参考 https://docs.docker.com/engine/reference/commandline/run/

docker run -p:5200:80 --rm --name homepage-demo weihanli/homepage

docker compose

通过 docker-compose.yml 启动容器,启动命令: docker-compose up

更多 compose 信息参考 https://docs.docker.com/compose/compose-file

docker-compose.yml 文件如下:

version: "3"
services:
 web:
  image: "weihanli/homepage"
  container_name: "weihanli-homepage-demo"
  ports:
    - "5200:80"

访问容器中的应用

访问 http://localhost:5200 ,即可访问到容器中部署的应用

More

项目源代码: https://github.com/WeihanLi/weihanli.github.io

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍详解利用ELK搭建Docker容器化应用日志中心,包括了详解利用ELK搭建Docker容器化应用日志中心的使用技巧和注意事项,需要的朋友参考一下 概述 应用一旦容器化以后,需要考虑的就是如何采集位于Docker容器中的应用程序的打印日志供运维分析。典型的比如SpringBoot应用的日志 收集。本文即将阐述如何利用ELK日志中心来收集容器化应用程序所产生的日志,并且可以用可视化的方式

  • 这节课让我们来容器化上面完成的 React 应用。不过在开始前,我们先重构下我们的项目吧。 重构¶ 在项目根目录下面新增一个叫services的文件夹,然后将nginx文件夹移动到 services 目录下面,将client文件夹移动到 services 目录下面,然后在 services 目录下面新建一个 users文件夹,将根目录下面的project文件夹、Dockerfile、manage.

  • 本文向大家介绍Angular如何在应用初始化时运行代码详解,包括了Angular如何在应用初始化时运行代码详解的使用技巧和注意事项,需要的朋友参考一下 前言 想象一下,您的应用需要一些动态配置信息,这些信息在应用启动之前需要动态获取,并在应用运行中使用。 显然不能直接写道静态配置文件中,但是从客户端发出的请求又是一个异步请求,如何协调这个问题呢? 这里,我想向您演示,如何在 Angular 应用初

  • 本文向大家介绍详解在Docker容器中运行Spring Boot应用,包括了详解在Docker容器中运行Spring Boot应用的使用技巧和注意事项,需要的朋友参考一下 spring Boot简化了Spring应用的开发过程,遵循约定优先配置的原则提供了各类开箱即用(out-of-the-box)的框架配置。另一方面,Spring Boot还具备将代码直接构建为可执行jar包的能力,这个jar包

  • Docker Containerizer(用 Docker 容器部署应用) Mesos 0.20.0 开始支持通过 Docker 镜像来启动任务,同时也支持部分的 Docker 参数。当然我们计划在未来支持更多的参数。 用户可以将 Docker 镜像作为一个任务启动,也可以作为一个 Executor 启动。 以下部分将描述 API 的变化以及支持 Docker 的新功能,还有如何设置 Docker

  • 我正在做一个ML项目,利用AWS Lambda构建模型和生成预测。Lambdas是用python编写的,并使用几个ML库,如熊猫、skLearning、Numpy和Scikit学习。这些lambda使用由Lambda层打包的共享代码。我使用AWS CDK进行项目部署。CDK代码是用TypeScript编写的,不要问我为什么要混合Python和TypeScript,这与此情况无关。 由于存在ML库,