Java项目基于Docker打包发布

一、后端项目

1.打包应用

mvn clean package -DskipTests

2、新建dockerfile文件

#基础镜像
FROM openjdk:8
#工作空间
WORKDIR  /opt
#复制文件
COPY wms-app-1.0-SNAPSHOT.jar app.jar(add也可以)
#配置容器暴漏的端口
EXPOSE 8080 //不暴露端口使用大P指定端口时访问不到
RUN ls#强制执行命令
#CMD ["java", "App"](也可以用cmd)
ENTRYPOINT [ "java","-jar","app.jar" ]

CMD 提供容器启动时的默认命令,易于被用户在运行时替换。
ENTRYPOINT 定义容器的核心应用或命令,通常不希望被轻易覆盖,运行时提供的参数将追加到其后。

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.mzph.cn/news/769834.shtml

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

相关文章

vue的常用指令

v-bind&#xff1a;用于响应地更新 HTML 属性。 <img v-bind:src"imageSrc"> <!-- 简写形式 --> <img :src"imageSrc"> v-on&#xff1a;用于监听 DOM 事件&#xff0c;并在触发时运行一些 JavaScript 代码。 <button v-on:cli…

c语言函数大全(Q开头)

c语言函数大全(Q开头) There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should leave quickly. 函数名…

软件测试|Python random模块,超乎想象的强大

Python的random模块是一个非常强大的工具&#xff0c;用于生成随机数和随机选择。它提供了许多函数和方法&#xff0c;可以满足各种随机化需求。本文将介绍random模块的基本功能和常见用法&#xff0c;以帮助读者更好地理解和利用这个模块。 返回整数 random.randange() 语法…

淘宝店商家爬虫工具 天猫店卖家电话采集软件使用指南

淘宝店商家爬虫工具是一款用于采集天猫店卖家电话号码的软件。本文将提供使用指南&#xff0c;并附带相关代码&#xff0c;帮助用户快速了解和使用该软件。 代码示例&#xff1a; import requests from bs4 import BeautifulSoup# 设置请求头 headers {User-Agent: Mozilla/…

关于 FastAPI 路径参数,你知道多少?

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

建立远程 Git 代码仓库

一、建立远程代码库 要在 Git 中建立远程代码库&#xff0c;你通常需要在代码托管平台上创建一个新的远程仓库&#xff0c;然后将本地仓库与之关联。以下是一般步骤&#xff1a; 在代码托管平台上创建远程仓库&#xff1a; 登录到你选择的代码托管平台&#xff08;如 GitHub、…

React Developer Tools安装

问题描述 在react开发中&#xff0c;需要插件来帮助我们开发&#xff0c;例如&#xff1a; 方法 &#xff08;可能需要魔法 进去后搜索&#xff1a; 点击下载即可

【Nebula笔记】基础操作

目录 一、预备~ 二、基础操作 (一) 图空间 1. 创建图空间 2. 清空图空间 3. 其他 4. FAQ 执行DROP SPACE语句删除图空间后&#xff0c;为什么磁盘的大小没变化&#xff1f; (二) 点类型 1. 创建Tag 2. 删除Tag 3. 更新Tag 4. 其他 (三) 边类型 1. 创建Edge type…

git如何在某个commitId的状态提交到一个分支

有些时候&#xff0c;我们在使用子仓库&#xff0c;或者其他情况&#xff0c;会有一个状态是当前的git仓库是在一个commitId上&#xff0c;而没有在一个分支上&#xff1a; 这时如果想要把基于这个commitId创建一个分支&#xff0c;可以使用下面这个命令&#xff1a; git push…

HCIA实验

实验目的&#xff1a; 1、R6为ISP&#xff0c;接口IP地址均为公有地址&#xff0c;该设备只能配置IP地址&#xff0c;之后不能再对其进行任何配置&#xff1b; 2、R1-R5为局域网&#xff0c;私有IP地址192.168.1.0/24&#xff0c;请合理分配&#xff1b; 3、R1、R2、R4&#x…

前端理论总结(html5)——form表单的新增特性/h5的新特性

form表单的新增特性 range&#xff1a;范围 color&#xff1a;取色器 url&#xff1a;对url进行验证 tel&#xff1a;对手机号格式验证 email&#xff1a;对邮箱格式验证 novalidate &#xff1a;提交表单时不验证 form 或 input 域 numbe…

i5 1240p和r7 8840HS差距 酷睿i51240p和r7 8840HS参数对比

r7 8840HS采用 Zen 4架构 4 nm制作工艺8核 16线程主频 3.3GHz睿频5.1GHz 三 级缓存16MB TDP 功耗 28w 搭载AMD Radeon 780M核显 选r7 8840HS还是i5-1240P这些点很重要 http://www.adiannao.cn/dy i5-1240P处理器具有4个性能核心&#xff0c;8个效能核心&#xff0c;总计12核心…

JUC-多线程

目录 进程 线程 线程的串行 区别 多线程 进程 是指计算机中已执行的程序&#xff0c;曾经是分时系统的基本运作单位在面向进程设计的系统&#xff08;如早期的UNIX&#xff0c;Linux 2.4及更早的版本&#xff09;中&#xff0c;是程序的基本执行实体在面向线程设计的系统…

【网络建设与运维】2024年河北省职业院校技能大赛中职组“网络建设与运维”赛项规程

培训、环境、资料、考证 公众号&#xff1a;Geek极安云科 网络安全群&#xff1a;775454947 网络系统管理群&#xff1a;223627079 网络建设与运维群&#xff1a;870959784 极安云科专注于技能提升&#xff0c;赋能 2024年广东省高校的技能提升&#xff0c;在培训中我们的应急…

jdbc连接回顾

不使用任何工具类手动连接 package com.oracle.jdbc;import java.sql.*;/***jdbc查询 jdbc数据库下&#xff0c;user表中所有数据并打印在控制台* jdbc操作数据库步骤* 1注册驱动* 2创建数据库连接对象* 3获取传输器对象* 4执行sql* 5处理结果集* 6释放资源*/public cla…

OSCP靶场--Crane

OSCP靶场–Crane 考点(CVE-2022-23940sudo service提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.229.146 -sC -sV --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-25 08:07 EDT Nmap scan report for 192.16…

python环境移植(本机windows到离线windows环境)

Python环境整体迁移(包括无网络情况)_python 迁移 新老无法联网-CSDN博客

Java 算法和数据结构 答案整理,最新面试题

Java中如何使用动态规划求解背包问题&#xff1f; 1、定义子问题&#xff1a; 首先确定动态规划状态&#xff0c;通常以物品数量和背包容量为变量定义子问题&#xff0c;例如dp[i][j]表示前i件物品放入容量为j的背包所能获得的最大价值。 2、确定状态转移方程&#xff1a; 基…

vue 重新渲染dom

当我们用 v-if"pane_persuser" 之类的属性值&#xff08;true和false&#xff09;在父页面来控制子页面弹窗打开关闭时&#xff0c;在第二次打开子页面时&#xff0c;子页面并不会重新执行mounted&#xff0c;也就不会重新执行我们写的某些函数来加载界面的值&#x…

数字和

输入一个整数 n,求各个位上的数字和,最长 200 位 输入 123456789987654321123456789987654321 输出 180 样例输入 45676475645643535479097091092198721753297409443093983432 样例输出 268 代码 #include<bits/stdc.h> using namespace std; int main(){ …