从开发到部署:Docker 化前端应用全流程指南

1.安装Docker插件

说明:菜单栏左上角打开"文件 → 设置",左侧为项目导航栏,中央为插件管理面板,搜索"docker"筛选出插件列表。右侧显示所选"Docker"官方插件的功能与特性,底部提供确认、取消和应用按钮。

2.连接Docker

说明:在"设置"中,左侧菜单"构建、执行、部署"下已有"Docker"选项,右侧显示具体的连接配置面板。当前配置名称为"Docker-test01",已成功使用"Docker for Windows"并通过命名管道连接到本地 Docker 守护进程,底部显示"连接成功"。在 Windows 环境下可直接使用命名管道连接;若是在远程服务器环境,应使用 TCP 套接字,并在"引擎 API URL"中填写服务器的 Docker 地址进行连接。

3.Dockerfile

说明:Dockerfile 基于官方 Nginx 镜像,将自定义配置文件和前端打包产物拷贝到镜像中,并启动 Nginx 服务,监听 80 端口提供静态页面和代理功能。

javascript 复制代码
FROM nginx:latest

# 使用我们自己的 nginx.conf
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 拷贝 dist
COPY dist/ /usr/share/nginx/html/

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

4.nginx.conf

说明:配置让 Nginx 在 80 端口提供前端静态文件服务,支持 hash 路由,并将 /universal-api/ 的请求代理到宿主机 8082 端口的后端服务。

javascript 复制代码
server {
    listen 80;
    server_name localhost;

    # 直接返回静态文件(hash 路由不需要 history)
    root /usr/share/nginx/html;

    # 处理你的 API 代理
    location /universal-api/ {
        proxy_pass http://host.docker.internal:8082/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    # 如果静态资源不存在则返回 index.html(可选)
    # hash 路由其实不需要这一段,可写可不写
    location / {
        try_files $uri $uri/ /index.html;
    }
}

5.Docker 运行/调试配置

说明:创建和配置一个 Docker 运行/调试配置 的具体步骤。具体来说,这张图显示的是在"运行/调试配置"对话框中,用户正在创建一个名为 test-02的配置,其主要设置包括:使用 Dockerfile 来构建镜像,将镜像标签命名为 02,将容器名称设置为 test-container-02,并配置端口映射将主机的 18883 端口映射到容器的 80 端口,同时还在配置一个在容器运行前需要执行的 npm run build构建脚本。

配置在启动 Docker 容器(名为 test-container-02)之前,自动执行一个 NPM 脚本(这里是 build)来构建项目。左侧的配置界面中,"执行前"区域被展开,并选中了"添加新任务 -> 运行 npm 脚本";右侧弹出的"NPM 脚本"设置窗口则具体指定了要运行的脚本是 build

6.构建镜像

说明:点击运行后,项目会先完成打包,打包完成后执行镜像构建任务,镜像构建成功后自动创建容器。

7.Web 应用访问地址

说明:http://localhost:18883/#/

相关推荐
怒放de生命20102 小时前
前端子包+docker流水线部署+nginx代理部署
前端·nginx·docker
Java程序员威哥2 小时前
云原生Java应用优化实战:资源限制+JVM参数调优,容器启动快50%
java·开发语言·jvm·python·docker·云原生
大房身镇、王师傅2 小时前
【Docker】RockyLinux10 安装 docker-compose
运维·docker·容器·docker-compose·rockylinux10
Java程序员威哥3 小时前
Java微服务可观测性实战:Prometheus+Grafana+SkyWalking全链路监控落地
java·开发语言·python·docker·微服务·grafana·prometheus
衫水4 小时前
Docker 常用指令大全(完整整合版)
运维·docker·容器
Python-AI Xenon4 小时前
基于RustDesk自建服务器实战指南(跨平台免费远程控制安卓设备)
docker·远程控制·rustdesk·云计算运维
optimistic_chen4 小时前
【Docker入门】Docker原理和安装
linux·运维·服务器·docker·容器·命令行
北京盟通科技官方账号4 小时前
Docker 容器化部署 EtherNet/IP 协议栈(ESDK):Windows 与国产银河麒麟 V10 实测对比
网络·网络协议·tcp/ip·docker·国产系统·ethernet/ip·工业协议
AIGCExplore4 小时前
Docker环境配置步骤
docker·容器·eureka
zwjapple5 小时前
windows系统docker的mysql端口被占用解决方案
docker·云原生·eureka