Dockerfile打包部署常用操作

文章目录

  • 1、Dockerfile部署java程序(jar包)
    • 1.1、创建Dockerfile
    • 1.2、将Dockerfile和要上传的jar包放到一个目录下,构建镜像
    • 1.3、创建启动容器
  • 2、Dockerfile部署vue
    • 2.1、创建dockerfile文件
    • 2.2、将打包的dist文件放到dockerfile同文件目录下
    • 2.3、在dockerfile同目录文件下创建目录conf.d,在conf.d下创建web.conf文件
    • 2.4、到Dockerfile执行打包镜像命令
    • 2.5、创建并运行容器


1、Dockerfile部署java程序(jar包)

1.1、创建Dockerfile

FROM java:8
MAINTAINER qingsong
VOLUME /home/wqswork/demofirst
ADD summer.jar demo1.jar
EXPOSE 8030
ENTRYPOINT ["java","-jar","demo1.jar"]
# 下面这句话限制容器的内存
#ENTRYPOINT ["/opt/infosec/cssp/jdk1.8.0_202/bin/java","-jar","-Xms1024m", "-Xmx1024m","-XX:+PrintGCDetails", "-XX:+PrintGCTimeStamps", "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=/opt/infosec/cssp", "-Xloggc:/opt/infosec/cssp","/opt/infosec/cssp/cssp-csm.jar"]
# 下面这句是运行带配置文件的
#ENTRYPOINT ["java","-jar","demo1.jar", "--spring.profiles.active=dev"]
  • from java:8 拉取一个jdk为1.8的docker image
  • MAINTAINER qingsong 作者是qingsong
  • VOLUME /home/wqswork/demofirst 持久化地址
  • summer.jar 就是你上传的jar包,替换为jar包的名称
  • demo1.jar 是你将该jar包重新命名为什么名称,在容器中运行
  • expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
  • entrypoint 容器启动之后执行的命令,java -jar demo1.jar 即启动jar

1.2、将Dockerfile和要上传的jar包放到一个目录下,构建镜像

# 注:一定要加“.”,否则构建失败
docker build -t demo1 .

1.3、创建启动容器

#这个表示docker容器在停止或服务器开机之后会自动重新启动 --restart=always
docker run -d --restart=always --name demotest -p 8040:8030  demo1

2、Dockerfile部署vue

2.1、创建dockerfile文件

#wqs_20210331 dockerfile
#使用 nginx最新版本作为基础镜像
FROM nginx

# 删除原来nginx自带的配置文件
RUN rm -vf /etc/nginx/conf.d/default.conf
# 复制自己写的配置文件
COPY ./conf.d/ /etc/nginx/conf.d/
#将当前文件夹的dist文件复制到容器的/usr/share/nginx/html目录
COPY ./dist /usr/share/nginx/html/

#声明运行时容器暴露的端口(容器提供的服务端口,nginx这里默认式80端口,所以可以注释掉)
#EXPOSE 8080

#CMD:指定容器启动时要运行的命令
CMD ["nginx", "-g", "daemon off;"]

2.2、将打包的dist文件放到dockerfile同文件目录下

2.3、在dockerfile同目录文件下创建目录conf.d,在conf.d下创建web.conf文件

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

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

    location /api/{
                proxy_pass http://172.17.0.1:7000/;
                proxy_redirect default;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }

    #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;
    }
}

2.4、到Dockerfile执行打包镜像命令

  docker build -t my-vue-test .
  # 出现以下描述,构建镜像完成
  Successfully built 1a42038957c7
  Successfully tagged my-vue-test:latest

2.5、创建并运行容器

  docker run -d --restart=always --name myvue01 my-vue-tes

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

哈佛大学 || 概念空间中学习动态的涌现:探索隐藏能力

获取本文论文原文PDF,请在公众号【AI论文解读】留言:论文解读 今天主要看一个问题:在模型中的学习动态是如何涌现的。 在现代生成模型的研究与应用中,不断发现这些模型在处理训练数据时展现出了惊人的能力,这些能力很…

2024年【道路运输企业安全生产管理人员】考试及道路运输企业安全生产管理人员操作证考试

题库来源:安全生产模拟考试一点通公众号小程序 道路运输企业安全生产管理人员考试参考答案及道路运输企业安全生产管理人员考试试题解析是安全生产模拟考试一点通题库老师及道路运输企业安全生产管理人员操作证已考过的学员汇总,相对有效帮助道路运输企…

数字身份管理发展趋势:​​​​​​扩展身份安全能力

身份作为企业各个应用的入口,大量存在于企业的内部业务和外部业务中,身份作为最核心数据对于企业的重要性不言而喻,因此也往往成为攻击者的攻击目标,从2023年国资国企受攻击的情况也不难看出,针对身份的攻击累计超过37…

metersphere链接腾讯邮箱步骤

1、打开腾讯邮箱生成授权码 路径:设置-账户-账户安全 生成的授权码只会展示1次,注意保存 2、在系统设置-系统参数设置-邮件设置填写授权码和SMTP信息 SMTP信息在邮箱的客户端设置中可以获取到对应的信息 3、信息填写完后,可以测试连接&…

golang 项目打包部署环境变量设置

最近将 golang 项目打包部署在不同环境,总结一下自己的心得体会,供大家参考。 1、首先要明确自己目标服务器的系统类型(例如 windows 或者Linux) ,如果是Linux 还需要注意目标服务器的CPU架构(amd或者arm) 目标服务器的CPU架构可执行命令&…

Modbus通信协议学习——调试软件

Modbus通信协议是一种广泛应用于工业自动化领域的串行通信协议,由Modicon公司(现为施耐德电气Schneider Electric)于1979年开发。该协议已成为工业电子设备之间通信的通用标准,支持多种设备和系统之间的数据交换。以下是对Modbus通…

值传递与引用传递:深入理解Java中的变量赋值和参数传递机制

在Java中,理解值传递(值拷贝)与引用传递(地址拷贝)之间的区别对于正确处理数据结构和对象至关重要。本文将通过示例代码深入探讨这两种机制,并解释它们如何影响程序的行为。 值传递(值拷贝&…

第16章 主成分分析:四个案例及课后习题

1.假设 x x x为 m m m 维随机变量,其均值为 μ \mu μ,协方差矩阵为 Σ \Sigma Σ。 考虑由 m m m维随机变量 x x x到 m m m维随机变量 y y y的线性变换 y i α i T x ∑ k 1 m α k i x k , i 1 , 2 , ⋯ , m y _ { i } \alpha _ { i } ^ { T } …

Drools开源业务规则引擎(二)- Drools规则语言(DRL)

文章目录 1.DRL文件的组成:2.package3.import4.function5.query6.declare7.global8.rule8.1.规则属性8.2.LHS8.2.1.语法格式8.2.2.运算符优先级8.2.3.特殊的运算符1.matches, not matches2.contains, not contains3.memberOf, not memberOf4.in, notin5.soundslike6…

7.8作业

一、思维导图 二、 1】按值修改 2】按值查找,返回当前节点的地址 (先不考虑重复,如果有重复,返回第一个) 3】反转 4】销毁链表 //按值修改 int value_change(linklistptr H,datatype e,int value) {if(HNULL||empty(H…

推出PSoC™ 车规级4100S Max系列,(CY8C4147LDE 和 CY8C4147LDS)支持性能更强大的第五代CAPSENSE™技术

推出全新车规级PSoC™ 4100S Max系列。这一微控制器器件系列具有更佳的闪存密度、通用输入输出接口(GPIO)、CAN-FD和硬件安全性,扩展了采用CAPSENSE™技术的汽车车身/暖通空调(HVAC)和方向盘应用人机界面(H…

Unity之Text组件换行\n没有实现+动态中英互换

前因:文本中的换行 \n没有换行而是打印出来了,解决方式 因为unity会默认把\n替换成\\n 面板中使用富文本这个选项啊 没有用 m_text.text = m_text.text.Replace("\\n", "\n"); ###动态中英文互译 using System.Collections; using System.Collections…

什么叫低频晶振?低频晶振最低频率能达到多少?低频晶振封装尺寸有哪些?

低频晶振指的是那些工作在较低频率范围内的晶体振荡器,通常这类振荡器的标称频率低于8MHz。这些晶振在各种电子设备中都有应用,尤其是在那些需要精确但不需要高频振荡的应用场景中,比如实时时钟(RTC)、低速串行通信接口(如UART、IC等)、以及一…

怎么才能选到好的猫咪主食冻干?公认顶尖优秀主食冻干总结

如今,主食冻干市场纷繁多样,质量水平却大相径庭。部分品牌盲目追求高营养值和利润增长,却忽略了猫咪健康饮食的本质需求,导致市场上充斥着以次充好、虚假标注日期等不法行为。更有甚者,部分产品未经权威第三方检测便匆…

提高LabVIEW软件的健壮性

提高LabVIEW软件的健壮性,即增强其在各种操作条件下的可靠性和稳定性,是开发过程中非常重要的一环。健壮的软件能够在面对意外输入、极端环境和系统故障时依然表现出色,确保系统的连续性和可靠性。以下是详细的方法和策略,从多个角…

【活动行】参与上海两场线下活动,教育生态行业赛总决赛活动和WAIC人工智能大会活动 - 上海活动总结

目录 背景决赛最后一公里领域范围 决赛作品AI智教相机辅导老师Copilot辅导老师Copilot雅思写作竞技场 优秀作品总结 背景 决赛 百度发起的千帆杯教育生态行业赛于2024年7月4日进行线下决赛,博主虽然没能进入决赛,但也非常荣幸能够以嘉宾身份到现场给进…

Leaflet【七】加载海量点数据

本文深入探讨了Leaflet在渲染海量点数据时面临的性能挑战,提出了一种创新的解决方案——利用leaflet-marker-canvas插件。传统的循环绘制Marker方式在数据量巨大时会导致明显的性能下降,而通过将点数据加入Canvas进行批量渲染,显著提高了绘图…

vite+vue3拍照上传到nodejs服务器

一:效果展示: 拍照效果 二:Nodejs后端接口代码: 三:前端完整代码:

【productj服务导出文件503问题】

设备服务只要导出文件,就报503,查看K8S发现服务重启 1. 复现问题1.1 问题复现频繁fullGC 宿主pod服务日志监控1.2 小内存复现 接口没啥问题,导出就会导致服务重启 1. 复现问题 当前uat环境配置: pod内存:2G JVM参数&a…

C++入门(C语言过渡)

文章目录 前言一、C关键字二、命名空间三、C输入&输出四、缺省参数五、函数重载六、引用七、inline八、nullptr总结 前言 C是一种通用的、高级的、静态类型的编程语言,它在20世纪80年代由丹尼斯里奇创建的C语言基础上发展而来。以下是C发展的一些重要里程碑。 1…