前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >在Docker中使用nginx托管vue应用程序

在Docker中使用nginx托管vue应用程序

作者头像
公众号: 云原生生态圈
发布于 2020-12-31 02:59:01
发布于 2020-12-31 02:59:01
1.1K00
代码可运行
举报
文章被收录于专栏:云原生生态圈云原生生态圈
运行总次数:0
代码可运行
小目标

使用Vue框架创建一个网站,掌握如何使用nginx在Docker容器中提供服务。

首先,我们将使用Vue CLI生成入门Vue应用程序,我们将这个应用命名vue-nginx-docker

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npx @vue/cli create vue-nginx-docker

创建应用程序后,进入到新的应用程序文件夹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd vue-nginx-docker

现在我们需要几个文件才能与Docker一起使用:Dockerfile和一个.dockerignore文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
touch Dockerfile

对于我们的.dockerignore文件,请确保像忽略git一样忽略我们的依赖文件node_modules

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo "node_modules" > .dockerignore

构建Dockerfile

这里我们通过使用Docker的多阶段multi-stage构建完成这个过程:

  • 阶段1:用于构建前端资源的node镜像
  • 阶段2:Nginx阶段为前端资源提供服务的

阶段1:构建前端文件

我们的第一阶段将:

  • 使用node镜像
  • 将我们所有的Vue文件复制到工作目录中
  • 用yarn安装项目依赖项
  • 用yarn构建应用程序
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM node:10 AS builder
WORKDIR /app
COPY . .
RUN yarn install && yarn build

阶段2:准备Nginx服务

我们的第二阶段将:

  • 使用Nginx镜像
  • 从Nginx镜像中删除所以不需要的静态文件
  • builder我们在第一阶段创建的容器中复制我们的静态文件
  • 为我们的容器指定入口点以运行nginx
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM nginx:alpine
WORKDIR /usr/share/nginx/html
RUN rm -rf ./*
COPY --from=builder /app/dist .
ENTRYPOINT ["nginx", "-g", "daemon off;"]

重要的是,Vue的dist默认将静态资源构建到该文件夹中,因此我们从那里复制文件。如果您的应用由于某种原因将文件构建到另一个文件夹中,请进行相应调整。这里我们就完成整个Dockerfile的内容了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM node:10 AS builder
WORKDIR /app
COPY . .
RUN yarn install && yarn build

FROM nginx:alpine
WORKDIR /usr/share/nginx/html
RUN rm -rf ./*
COPY --from=builder /app/dist .
ENTRYPOINT ["nginx", "-g", "daemon off;"]

现在我们已经组装了Dockerfile,让我们构建一个名为vue-nginx的镜像:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker build -t vue-nginx .

现在我们的镜像已构建,我们可以使用以下命令启动一个容器,该容器将在端口8080上为我们的应用程序提供服务。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run --rm -it -p 8080:80 vue-nginx

然后访问http://localhost:8080即可访问vue应用程序。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生生态圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
新手入门系列之-React / Vue 应用持续集成Docker 化
应用部署从刀耕火种,到DevOps崛起,原来不止前端在迅捷发展。接下来,我将用一首歌的时间,带大家真实的体验一番Docker容器化。
胡哥有话说
2020/09/29
1.6K0
新手入门系列之-React / Vue 应用持续集成Docker 化
如何缩小您的docker 镜像体积
写好node代码后,打包进docker发现镜像非常大,下面方法有助于构建一个一个体积小很多的镜像;
iginkgo18
2021/08/20
2.3K0
Dockerfile 实践:构建 Java、Python、Vue 和 Go 环境
在这篇文章中,我将分享如何使用 Dockerfile 为不同的编程语言和框架创建 Docker 镜像。我们将覆盖 Java、Python、Vue3 和 Go。
蚂蚁蚂蚁
2024/03/29
3490
3.Docker学习之Dockerfile
描述:Dockerfile是一个文本格式的配置文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。 用户可以使用Dockerfile快速创建自定义的镜像;通过它所支持的内部指令,以及使用它创建镜像的基本过程,Docker拥有”一点修改代替大量更新”的灵活之处;
全栈工程师修炼指南
2022/09/28
1.3K0
3.Docker学习之Dockerfile
[译] 面向 React 和 Nginx 的 Docker 多阶段构建
原文:http://progressivecoder.com/docker-multi-stage-build-for-running-react-application-on-nginx-server/
江米小枣
2020/06/15
2.5K0
想要成为前端Star 吗?一首歌时间将React/Vue 应用Docker 化
应用部署从刀耕火种,到DevOps崛起,原来不止前端在迅捷发展。接下来,我将用一首歌的时间,带大家真实的体验一番Docker容器化。
前端劝退师
2020/09/01
8120
想要成为前端Star 吗?一首歌时间将React/Vue 应用Docker 化
3.Docker学习之Dockerfile
描述:Dockerfile是一个文本格式的配置文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。 用户可以使用Dockerfile快速创建自定义的镜像;通过它所支持的内部指令,以及使用它创建镜像的基本过程,Docker拥有”一点修改代替大量更新”的灵活之处;
全栈工程师修炼指南
2020/10/23
1.8K0
3.Docker学习之Dockerfile
使用 Docker 实现前端应用的标准化构建、部署和运行
Docker 容器化技术是当今最重要的基础设施之一,或者说它已经成为服务程序 的标准化运行环境。
_sx_
2023/10/23
2.8K0
使用 Docker 实现前端应用的标准化构建、部署和运行
Dockerfile全面指南:从基础到进阶,掌握容器化构建的核心工具
Dockerfile 是构建 Docker 镜像的核心文件。它定义了如何将应用程序及其依赖打包成一个可以跨平台运行的容器。本篇博客将从基础概念出发,逐步介绍 Dockerfile 的常见配置、使用注意事项,以及如何编写高效的 Dockerfile。
watermelo37
2025/01/22
1730
Dockerfile全面指南:从基础到进阶,掌握容器化构建的核心工具
《Docker极简教程》--Dockerfile--Dockerfile的基本语法
Dockerfile是一种文本文件,用于定义Docker镜像的内容和构建步骤。它包含一系列指令,每个指令代表一个构建步骤,从基础镜像开始,逐步构建出最终的镜像。通过Dockerfile,用户可以精确地描述应用程序运行环境的配置、依赖项安装、文件复制等操作。这使得应用程序的部署和分发变得更加可控和可重复。Dockerfile的内容可以根据需求自定义,允许开发者根据应用程序的特性和需求来灵活配置镜像的构建过程,从而实现高效、可靠的容器化部署。
喵叔
2024/05/24
2.9K0
docker | dockerfile最佳实践
在使用 Docker 的过程中,编写 Dockerfile 是非常重要的一部分工作。合理编写 Dockerfile 会使我们构建出来的 Docker image 拥有更佳的性能和健壮性
Amadeus
2023/04/17
1K0
docker | dockerfile最佳实践
Dockerfile 最佳实践
Docker通过读取Dockerfile文件中的指令自动构建镜像。Dockerfile文件为一个文本文件,里面包含构建镜像所需的所有的命令。Dockerfile文件遵循特定的格式和指令集 Docker镜像由只读层组成,每个层都代表一个Dockerfile指令。这些层是堆叠的,每个层都是前一层变化的增量
YP小站
2020/06/04
6730
Docker学习路线7:构建容器镜像
容器镜像是可执行的软件包,包括运行应用程序所需的所有内容:代码、运行时、系统工具、库和设置。通过构建自定义镜像,您可以在任何支持Docker的平台上无缝地部署应用程序及其所有依赖项。
小万哥
2023/07/18
4600
Docker学习路线7:构建容器镜像
【Docker】专题三:Dockerfile 相关
Dockerfile 是一个文本文件,用于在执行 docker build 命令构建 Docker 镜像时,定义所需的基础镜像以及相关命令。
行者Sun
2024/09/02
4460
【Docker】专题三:Dockerfile 相关
​「免费开源」基于Vue和Quasar的crudapi前端SPA项目实战之docker部署(八)
通过上一篇文章 基于Vue和Quasar的前端SPA项目实战之业务数据(七)的介绍,crudapi-admin-web基本功能全部实现了,本文主要介绍前端打包和docker部署相关内容。
crudapi
2021/09/09
6890
​「免费开源」基于Vue和Quasar的crudapi前端SPA项目实战之docker部署(八)
使用这 3 个技巧升级您的 NodeJS Dockerfile
Dockerfile 是创建容器的蓝图。它们是简单的文本文件,包含了创建容器镜像所需的命令,这些命令通常是您手动执行的。Dockerfile 就是您容器的源代码。
zayyo
2023/11/29
5120
聊聊在生产环境中使用Docker的最佳实践有那些策略?
近几年Docker的使用不断增长📈,上至公司团队,下至普通开发者。 但是并不是每个团队(或者个人)在使用 Docker 的时候都能做到 Docker 的最佳实践 👀, 本文将从以下几个方面来聊聊 Docker 工程化实践中的最佳方案.
用户1418987
2023/10/16
9810
聊聊在生产环境中使用Docker的最佳实践有那些策略?
docker学习系列19 容器化Angular项目
请留意下匿名卷/usr/src/app/node_modules。 该目录是在docker build构建阶段创建的,在Run启动阶段需要手动挂载该目录。
mafeifan
2019/03/14
1.6K0
Docker | 加速开发流程的 Dockerfile 最佳实践
Dockerfile 是创建 Docker 镜像的起点,该文件提供了一组定义良好的指令,可以让我们复制文件或文件夹,运行命令,设置环境变量以及执行创建容器镜像所需的其他任务。编写 Dockerfile 来确保生成的镜像安全、小巧、快速构建和快速更新非常重要。
咸鱼学Python
2020/05/18
1.5K0
Docker | 加速开发流程的 Dockerfile 最佳实践
花椒前端基于容器的 Vue SSR 持续开发集成环境实践
vue-server-renderer 是vue srr 服务器端渲染的核心模块,我们会使用koa搭建服务器。
CNCF
2020/04/14
2K0
花椒前端基于容器的 Vue SSR 持续开发集成环境实践
推荐阅读
相关推荐
新手入门系列之-React / Vue 应用持续集成Docker 化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文