Java项目基于Docker打包发布

news2024/9/22 13:30:27

一、后端项目

1.打包应用

mvn clean package -DskipTests

2、新建dockerfile文件

#基础镜像
FROM openjdk:8
#工作空间
WORKDIR  /opt
#复制文件
COPY wms-app-1.0-SNAPSHOT.jar app.jar
#配置容器暴漏的端口
EXPOSE 8080
RUN ls
#强制执行命令
ENTRYPOINT [ "java","-jar","app.jar" ]

3.打包镜像(.代表当前目录,输入命令时要进入文件所在目录)

docker build -t mall:v1 .

  4.测试运行

--rm 代表退出之后,容器自动删除

docker run -it --rm beimao:v1

5.阿里云免费私仓

可以把项目发布到阿里云私仓

容器镜像服务 (aliyun.com)

进入网站,点击选择创建个人实例,然后点击创建镜像仓库,填写仓库信息,点击下一步

选择本地仓库,点击创建镜像仓库

根据操作指南进行推送和拉取

例:推送

 二、前端项目

1 、编译打包

npm run build

将打包好的文件放到在opt目录下的新建wms_web/html目录中

 

2、前端项目 nginx的配置文件default.conf 和 dockerfile

(1)新建default.conf文件

可以使用以下命令进入nginx容器中查看文件,复制原本的进行修改

 例:

upstream wms-app{
    server 192.168.11.99:3999;
}
server {
    listen 80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;

        try_files $uri $uri/ /index.html;#解决单页面找不到路径问题 404
    }
    location /api/ {
        proxy_pass http://wms-app;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

 (2)新建dockerfile

FROM nginx
COPY html /usr/share/nginx/html
RUN rm -rf /etc/nginx/conf.d/default.conf
COPY default.conf /etc/nginx/conf.d/default.conf

1.root:设置静态根目录为 /usr/share/nginx/html

2. index:设置目录的默认文件为 index.html 、index.htm、index.php

3. try_files:设置文件查找规则为 $uri $uri/ /index.html。即3个规则,先从 $uri 查找,再从 u r i / 目录中查找,最后查找 / i n d e x . h t m l 。

3 、构建镜像

docker build -t web:v1 .

 

4、运行

如果运行时报错,更改了配置文件需要重新build构建镜像,否则使用原来的会继续报错

docker  run -it -p 8086:80  web:v1

结果:可在本地浏览器中访问

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谷粒商城——缓存的概念

1. 使用缓存的好处:减少数据库的访问频率,提高用户获取数据的速度。 2. 什么样的数据适合存储到缓存中? ①及时性、数据一致性要求不高的数据,例如物流信息、商品类目信息 ②访问量大更新频率不高的数据(读多、写少) 3. 读模式…

sentinel熔断规则详解

1、慢调用降级熔断 1.1、参数详解 最大RT:调用接口的最大时间。 比例阈值:超过了最大RT调用时间的请求的比例。 熔断时长:触发熔断后,熔断的时间 最小请求数据:每秒最少的请求数量,只有大于等于这个数…

电网的正序参数和等值电路(一)

本篇为本科课程《电力系统稳分析》的笔记。 本篇为第二章的第一篇笔记。 电力系统正常运行中,可以认为系统的三相结构和三相负荷完全对称。而对称三相的计算可以用一相来完成,其中所有给出的标称电压都是线电压的有效值,假定系统全部是Y-Y型…

基于Python3的数据结构与算法 - 16 链表

目录 链表 1. 创建链表 2. 链表的插入和删除 3. 双链表 4. 链表总结 链表 链表是由一系列节点组成的元素集合。每个节点包含两部分,数据域item和指向下一个节点得指针next。通过节点之间的相互连接,最终串联成一个链表。 class Node:def __init…

Unity访问安卓(Android)或苹果(iOS)相册

1.下载Native Gallery for Android & iOS插件 2.在场景中添加截图按钮、选择图片按钮、选择视频按钮等 using OpenCVForUnity.CoreModule; using OpenCVForUnity.ImgprocModule; using OpenCVForUnity.UnityUtils; using System.Collections; using System.Collections.Gen…

好用的GPTs:指定主题搜索、爬虫、数据清洗、数据分析自动化

好用的GPTs:指定主题搜索、爬虫、数据清洗、数据分析自动化 Scholar:搜索 YOLO小目标医学方面最新论文Scraper:爬虫自动化数据清洗数据分析 点击 Explore GPTs: Scholar:搜索 YOLO小目标医学方面最新论文 搜索 Scho…

C语言 swab 函数学习

swab函数交换字符串中相邻两个字节; void _swab( char *src, char *dest, int n ); char *src: 要拷贝、转换的字符串, char *dest,转换后存储到dest所表示的字符串, int n要拷贝、转换的字节数; 所…

交通事故档案管理系统|基于JSP技术+ Mysql+Java+Tomcat的交通事故档案管理系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可…

关于OceanBase中旁路导入的应用分享

背景 前段时间,在用户现场协助进行OceanBase的性能测试时,我注意到用户常常需要运用 insert into select 将上亿行的数据插入到一张大宽表里,这样的批量数据插入操作每次都需要耗时半个小时左右。对这一情况,我提议用户尝试采用旁…

福建科立讯通信 指挥调度管理平台 SQL注入漏洞复现(CVE-2024-2620、CVE-2024-2621)

0x01 产品简介 福建科立讯通信指挥调度管理平台是一个专门针对通信行业的管理平台。该产品旨在提供高效的指挥调度和管理解决方案,以帮助通信运营商或相关机构实现更好的运营效率和服务质量。该平台提供强大的指挥调度功能,可以实时监控和管理通信网络设备、维护人员和工作任…

SpringMVC | Spring MVC中的“拦截器”

目录: 拦截器 :1. 拦截器的 “概述”2. 拦截器的 “定义” (创建“拦截器”对象)3. 拦截器的 “配置” (让“拦截器”对象生效)4. 拦截器的 “执行流程”“单个拦截器”的执行流程“多个拦截器”的执行流程 作者简介 :一只大皮卡丘,计算机专业…

python云上水果超市的设计与实现flask-django-php-nodejs

伴随着我国社会的发展,人民生活质量日益提高。于是对云上水果超市进行规范而严格是十分有必要的,所以许许多多的信息管理系统应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套云上水果超市,帮助商家进行商品信…

图论基础|深度优先dfs、广度优先bfs

dfs 与 bfs 区别 提到深度优先搜索(dfs),就不得不说和广度优先搜索(bfs)有什么区别 先来了解dfs的过程,很多录友可能对dfs(深度优先搜索),bfs(广度优先搜索…

几个常用的控件(2)

目录 一、单选按钮Radiobutton和RadioButtonList 1、Radiobutton控件 (1)button控制方式 (2)Radiobutton控制方式 2、RadiobuttonList控件 二、列表框ListBox和下拉列表DropdownList 1、ListBox 2、DropdownList 三、面板…

H3C技术大全复现之高级路由交换技术 1

华子目录 VLAN 基本技术VLANIEEE 802.1Q交换机端口类型MVRP协议实验测试 VLAN扩展技术Super VLAN产生背景Super vlan(相当于vlanif接口,也属于虚拟接口,可以充当网关)Sub vlan(普通vlan)关于代理ARP普通代理…

【c++入门】命名空间,缺省参数与函数重载

🔥个人主页: Quitecoder 🔥专栏:c笔记仓 朋友们大家好!本篇内容我们进入一个新的阶段,进入c的学习!希望我的博客内容能对你有帮助! 目录 1.c关键字2.第一个c代码3.命名空间3.1 nam…

python智慧农业小程序flask-django-php-nodejs

当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统智慧农业采取了人工的管理方法,但这…

导航栏还是侧栏?flutter 跨平台适配指南

介绍 引言:Flutter 的跨平台特性 Flutter 是由 Google 开发的一款跨平台应用开发框架,它具有许多优点,包括性能优异、开发效率高以及良好的用户体验等。其中,最引人注目的特性之一就是其出色的跨平台能力。通过编写一套代码&…

【SpringSecurity】十六、OAuth2.0授权服务器、资源服务器的配置(理论部分)

文章目录 0、OAuth2服务端结构1、授权服务配置2、授权服务器 ⇒ 配置客户端详情3、授权服务器 ⇒ 管理令牌配置4、授权服务器:配置端点访问的安全约束5、资源服务器配置 相关📕: 【OAuth2授权服务器配置完整Demo】 0、OAuth2服务端结构 OAu…

微信小程序分销返佣模式--小程序1-3级分销插件--小程序分销--

团购小程序是一种基于社区团购模式的电商平台,主要面向社区居民用户。 如果你想要开发一款分销团购小程序可以参考以下功能需求进行开发制作。 1、用户注册和登录 提供用户注册和登录功能,使用户能够创建和管理他们的账户。 2、会员管理 包括会员注…