前端使用docker(这里以Vue项目举例)

news/2025/3/15 17:00:14/文章来源:https://www.cnblogs.com/xuanPhoto/p/18773913

第一步:检查 Vue 项目打包输出

你已经使用 npm run build 进行打包,Vue 的默认打包输出文件通常在 dist/ 目录下。请确认该目录存在,并且包含 index.html 以及 assets/ 等静态文件。

第二步:编写 Dockerfile

在 Vue 项目的根目录下,新建一个 Dockerfile,内容如下:

# 使用 nginx 作为基础镜像
FROM nginx:latest# 删除默认的 nginx 静态文件目录
RUN rm -rf /usr/share/nginx/html/*# 复制 Vue 打包后的 dist 文件到 nginx 目录
COPY dist/ /usr/share/nginx/html/# 复制自定义的 Nginx 配置文件(可选)
COPY nginx.conf /etc/nginx/nginx.conf# 暴露 80 端口
EXPOSE 80# 启动 nginx
CMD ["nginx", "-g", "daemon off;"]

说明:

  • FROM nginx:latest:使用官方 nginx 作为基础镜像。
  • COPY dist/ /usr/share/nginx/html/:将 Vue 打包后的文件复制到 Nginx 服务器的默认静态目录。
  • EXPOSE 80:暴露 80 端口,让外部可以访问网站。
  • CMD ["nginx", "-g", "daemon off;"]:设置 Nginx 作为前台进程运行。

第三步:可选的 Nginx 配置文件

如果你需要自定义 Nginx 配置,可以在项目根目录新建 nginx.conf

worker_processes 1;events {worker_connections 1024;
}http {include       mime.types;default_type  application/octet-stream;
sendfile        on;keepalive_timeout 65;server {listen 80;server_name localhost;location / {root   /usr/share/nginx/html;index  index.html;try_files $uri $uri/ /index.html;
        }error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}}
}

注意

  • try_files $uri $uri/ /index.html; 这一行很重要,如果你的 Vue 项目是单页面应用(SPA),可以确保前端路由正确。

第四步:构建 Docker 镜像

在 Vue 项目的根目录(包含 Dockerfile 的目录)执行:

docker build -t my-vue-app .

说明

  • docker build:用于构建 Docker 镜像。
  • -t my-vue-app:给镜像取一个名字 my-vue-app,方便后续运行。

第五步:运行 Docker 容器

docker run -d -p 8080:80 --name my-vue-container my-vue-app

说明

  • -d:后台运行容器。
  • -p 8080:80:将宿主机的 8080 端口映射到容器的 80 端口,这样你可以通过 http://localhost:8080 访问 Vue 项目。
  • --name my-vue-container:给容器取一个名字 my-vue-container
  • my-vue-app:使用上一步构建的镜像运行容器。

第六步:测试 Vue 应用

浏览器打开:

http://localhost:8080

第七步:管理 Docker 容器

常见的 Docker 操作命令:

# 查看正在运行的容器
docker ps# 查看所有容器(包括已停止的)
docker ps -a# 停止容器
docker stop my-vue-container# 删除容器
docker rm my-vue-container# 删除镜像
docker rmi my-vue-app# 重新运行容器(如果已创建)
docker start my-vue-container

说明

Windows 版 Docker 提供 Docker Desktop,你可以在 GUI(图形界面)上管理容器、镜像等资源。不过,Docker 主要是通过 命令行 操作的,GUI 只是辅助查看。你可以按照以下步骤,在 Windows 上通过 Docker Desktop 操作 Vue 项目。确认 Docker Desktop 运行正常
打开 Docker Desktop,确保它在运行状态。检查 Docker 是否可用
打开 Windows 终端(PowerShell 或 CMD),执行:docker version
如果 Docker 运行正常,会显示客户端和服务器的版本信息。

运行nginx报错问题处理

这个错误的主要原因是 Docker 无法从官方仓库拉取 nginx:latest 镜像,可能的原因包括:

  1. 网络问题
    • 访问 docker.io 的网络不稳定,可能被防火墙拦截或 DNS 解析失败。
  2. Docker 未正确登录
    • 需要 docker login 登录 Docker Hub 账户。
  3. Windows 代理问题
    • 可能需要配置 Docker Desktop 的代理或者使用国内镜像加速器。
方案 1手动拉取 Nginx 镜像尝试手动拉取 nginx:latest 镜像:docker pull nginx:latest方案 2使用国内镜像加速
Docker 默认从 docker.io 拉取镜像,但国内访问可能会超时,你可以使用 国内镜像加速器(例如阿里云或网易云)。步骤 1:修改 Docker Desktop 配置打开 Docker Desktop。进入 Settings(设置) → Docker Engine。找到 "registry-mirrors",添加国内镜像:{"registry-mirrors": ["https://registry.docker-cn.com","https://mirror.ccs.tencentyun.com","https://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
}点击 Apply & Restart(应用并重启)。步骤 2:重新拉取 Nginx 镜像docker pull nginx:latest如果这一步成功,再次执行:docker build -t my-vue-app .

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/899270.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

clion/idea/pycharm项目配置

环境搭建与配置 pycharm篇 markdown as root idea篇 clion篇构建 cmake -S src -B build $CMAKE_OPTIONS 编译 cmake --build 配置deployment,cmake(cmake配置编译目录,引用环境变量,cmake环境变量引用$CMAKE_OPTIONS) ccache配置 ccache弄一个gcc和g++的软链,放在PATH最…

web68笔记(+禁用print_r、highlight)

web68 打开就直接说 Warning: highlight_file() has been disabled for security reasons in /var/www/html/index.php on line 19 猜跟之前代码一致,加了过滤 然后这⾥还把print_r给禁了,⽤var_dump()吧 c=var_dump(scandir("/")); 还是在跟⽬录 flag.txt 既然hig…

健身相关

后仰?10次 如何管理自己的症状 急性期https://new.qq.com/rain/a/20210819A094EC00犀牛数据地点+纳税排名

文本弹窗选择

@Entry@Componentstruct TextPickerDialogPage { fruits: string[] = [苹果, 橘子, 香蕉, 鸭梨, 西瓜] @State selectedIndex: number = 0 build() { Column({ space: 50 }) { Text(this.fruits[this.selectedIndex]) .fontWeight(FontWeight.Bold) .…

AP csa FRQ Q1 Past Paper 五年真题汇总 2023-2019

Author(wechat): bigshuang2020 ap csa tutor, AP计算机科学a老师 国际教育编程老师, 擅长答疑讲解,带学生实践学习。热爱创作,作品:ap csa原创教案,真题梳理汇总,FRQ专题冲刺。2023 FRQ Question 1 This question involves the appointmentBook class, which provides me…

自带弹窗-》删除功能提示

@Entry@Componentstruct AlertDialogPage { build() { Column() { Button(删除) .backgroundColor(Color.Red) .onClick(() => { AlertDialog.show( { title: 删除该记录?, //弹窗标题 message: 删除…

ASE90N25-ASEMI工业电机专用ASE90N25

ASE90N25-ASEMI工业电机专用ASE90N25编辑:ll ASE90N25-ASEMI工业电机专用ASE90N25 型号:ASE90N25 品牌:ASEMI 封装:TO-247 批号:最新 最大漏源电流:90A 漏源击穿电压:250V RDS(ON)Max:26mΩ 引脚数量:3 沟道类型:N沟道MOS管、中低压MOS管 漏电流:ua 特性:N沟道MO…

温度转化和蟒蛇绘制

蟒蛇绘制 import turtle turtle.setup(650,360,600,200) turtle.penup() turtle.fd(-250) turtle.pendown() turtle.pensize(25) turtle.pencolor("pink") turtle.seth(-40) for i in range(4): turtle.circle(40,80) turtle.circle(-40,80) turtle.circle(40,80/2) …

Java面向对象编程(OOP)

面向过程&面向对象 面向过程思想:步骤清晰简单,第一步该做什么,第二步该做什么... 适合处理一些较为简单的问题 线性思维面向对象四思想:物以类聚,分类的思维模式,思考问题首要解决问题需要哪些分类,然后对这些分类进行单独思考,最后才对某个分类下的细节进行面向过…

第二章作业

由于一至三题只存了源代码,自己写的没有保存,所以仅以截图展示。四至八题则采取代码和截图一起的方式展示。 2.4 import turtle turtle.setup(650,360,800,200) turtle.penup() turtle.fd(-250) turtle.pendown() turtle.pensize(25) turtle.seth(-40) colors = ["blue&…

book_第2章例题

1.温度转化(符号在后) 2.温度转化(符号在前) 3.蟒蛇例题

SvelteKit 最新中文文档教程(3)—— 数据加载

前言 Svelte,一个语法简洁、入门容易,面向未来的前端框架。 从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1:Svelte 以其独特的编译时优化机制著称,具有轻量级、高性能、易上手等特性,非常适合构…