Dockerfile部署java项目

news2024/9/23 7:32:29

一、dockerfile展示

将DockerFile 配置文件放到 maven项目目录内,和pom.xml同级。

# Download code
FROM bitnami/git:2 AS git
RUN mkdir -p /home/app/src
RUN git -c http.sslVerify=false -C /home/app/src clone -b local https://github.com/test.git

#
# Build & package stage
#
FROM maven:3.8.1-jdk-11-slim AS build
COPY --from=git /home/app/src /home/app/src
RUN mvn -X -f /home/app/src/websit/pom.xml clean package -Dmaven.test.skip=true clean package -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ignore.validity.dates=true -Dspring.cloud.nacos.username=only_read -Dspring.cloud.nacos.password=nacos

#
# Runtime eviroment
#
FROM openjdk:11-jre-slim
COPY --from=build /home/app/src/websit/demo.jar /usr/local/lib/demo.jar
EXPOSE 9090
ENTRYPOINT ["java","-Duser.timezone=Asia/Shanghai","-jar","/usr/local/lib/demo.jar"]


这是一个多步骤的dockerfile,第一步git下载代码,第二步使用maven进行打包,第三步将运行时环境准备好,并设置命令java -jar ***.jar来在容器启动时启动服务。

二、打包镜像

自动检测的文件名为Dockerfile ,使用-f 指定dockerfile文件路径。

docker build -f dockerfile -t kanban:0.0.1

三、部署容器

docker run -d -it -p 9965:9962 kanban:0.0.1

要想退出 container 时,让 container 仍然在后台运行着,可以使用“docker exec -it”命令。每次使用这个命令进入container,当退出container后,container仍然在后台运行,命令使用方法如下:

docker exec -it goofy_almeida /bin/bash

goofy_almeida:container的名称

/bin/bash:在container中启动一个bash shell

-i: 保持标准输入打开,默认为false;

-t: 是否分配一个伪终端,默认为false;

这样输入“exit”或者按键“Ctrl + C”退出container时,这个container仍然在后台运行,通过:

docker ps

就可以查找到。

docker学习

构建镜像

# 命令:(注意最后的 .)
# 该命令会在当前目录下寻找Dockerfile文件,并自动完成构建。
# -t webapp 表示给构建完成的镜像取一个名字。
docker build -t webapp .

docker images  # 查看镜像信息

运行容器

# 命令:
docker run -d -p 8090:8080 webapp
-d # 表示后台运行容器,并返回容器ID
-p # 使用端口映射,8090:8080表示将容器的8080端口映射到主机的8090端口。

docker ps -a  # 查看运行的所有容器

在这里插入图片描述

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

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

相关文章

2023年宜昌市中等职业学校技能大赛 “网络搭建与应用”竞赛题-1

2023年宜昌市中等职业学校技能大赛 “网络搭建与应用”竞赛题 一、竞赛内容分布 “网络搭建及应用”竞赛共分二个部分,其中: 第一部分:企业网络搭建部署项目,占总分的比例为50%; 第二部分:企业网络服…

打工人使用ChatGPT的一天!

众所周知,ChatGPT 自去年OpenAI 推出以来,这款 AI 聊天机器人可以说迅速成为了 AI 界的「当红炸子鸡」 作为一名资深的打工人👷🏻‍♂️,我们应该怎样利用ChatGPT提高工作效率呢?今天给大家介绍下打工人使…

c++ cuda加速学习笔记

1. 环境配置 (1)显卡驱动下载官网,需要知道自己电脑的显卡类型 搜索链接:https://www.nvidia.com/Download/index.aspx?langzh-cn(2)怎么知道自己的的显卡类型 https://jingyan.baidu.com/article/2a13832888b2a7464a134fef.html 此电脑->管理->…

通过Modbus实现TTS语音全彩声光告警-博灵语音通知终端-网络语音报警灯

背景 目前PLC在工业领域应用广泛,在运行过程中可能会涉及到各种告警。 为了简单快速的实现语音声光告警,本文以大连英仕博科技出品的博灵语音通知终端为例,演示如何通过Modbus TCP协议实现声光告警推送。 播报效果演示 Modbus-博灵语音通知…

Google Play 政策更新重点回顾 (上) | 2023 年 4 月

Google Play 始终如一地为大家打造值得信赖的安全平台,支持大家走向成功。为了让您更及时更清晰地掌握 Google Play 最新政策,我们准备了两篇文章为您详细说明 2023 年 4 月的政策更新内容,以及深度解析。本文是第一篇内容,我们将…

日撸 Java 三百行day46

文章目录 说明day46 快速排序1.基本思路2. 代码 说明 闵老师的文章链接: 日撸 Java 三百行(总述)_minfanphd的博客-CSDN博客 自己也把手敲的代码放在了github上维护:https://github.com/fulisha-ok/sampledata day46 快速排序 …

计算机网络安全--期末

计算机网络安全绪论 计算机网络实体是什么 计算机网络中的关键设备,包括各类计算机、网络和通讯设备、存储数据的媒体、传输路线…等 典型的安全威胁有哪些 ★ ⋆ \bigstar\star ★⋆ 窃听(敏感信息被窃听)重传(被获取在传过来)伪造(伪造信息发送)篡…

kubeadm 部署Kubernetes 集群一主多从集群并完成pod部署

目录 搭建环境准备三台虚拟机: 环境条件限制: 一,关闭交换分区 二,禁用selinux 三,防火墙关闭 四,docker安装 五,设置IPv4 流量传递到 iptables 六,配置k8s的yum源 七&#…

vue3学习三 computed

vue3中的computed 也被封装成了一个组合api , 所以我们使用的时候&#xff0c; 要 import {computed} from “vue” 和vue2样&#xff0c; computed 是有两种书写方式 简写方式和全写方式 <template><div> firstname:<input v-model"firstname" /&g…

【专题连载】基于5G+机器视觉的芯片检测解决方案

基于5G机器视觉的芯片检测解决方案 背景 机器视觉的价值体现在它能为工业生产带来产量的增加和产品质量的提升&#xff0c;并同时降低生产成本&#xff0c;推动了工业生产的快速发展&#xff0c;使工业生产企业真正从中受益。为了进一步压缩生产成本&#xff0c;工业控制的产…

信号与槽机制一

一、信号与槽 1、什么是信号与槽&#xff1f; 信号和槽是用于对象之间的通信&#xff0c;它是Qt的核心机制&#xff0c;在Qt编程中有着广泛的应用。如果想学好Qt&#xff0c;一定要充分掌握信号的槽的概念与使用。 2、信号和槽的代码实例 在Qt中&#xff0c;发送对象、发送的信…

FPGA上的视觉 SLAM

在FPGA开发板上实现基于立体视觉的 SLAM。 绪论 SLAM&#xff08;同步定位和地图绘制&#xff09;在自动驾驶、AGV 和无人机等各种应用中引起了人们的广泛关注。尽管目前有很多优秀的 SLAM 项目可以参考&#xff0c;但是他们的复杂性&#xff08;高性能&#xff09;及依赖性&am…

体验洞察 | 原来它才是最受欢迎的CX指标?

一直以来&#xff0c;企业都在试图追踪他们能否在整个客户旅程中始终如一地提供卓越的客户体验&#xff08;Customer Experience&#xff0c;简称“CX”&#xff09;&#xff0c;并通过多个CX指标&#xff0c;如NPS&#xff08;净推荐值&#xff09;、CSAT&#xff08;客户满意…

简单讲讲UE中的PlayerCameraManager

我们在平时开发中&#xff0c;少不了编写一些逻辑去控制相机&#xff0c;例如俯视角镜头与各个特写镜头的过渡切换&#xff0c;因此了解一些PlayerCameraManager是有必要的。 PlayerCameraManager是UE自带的相机管理组件&#xff0c;本身比较简单&#xff0c;一般需要自行扩展…

长短期记忆网络LSTM(long short-term memory)

递归神经网络 递归神经网络可以解决这个问题。它们是带有循环的神经网络&#xff0c;允许信息保留一段时间。 在上图中&#xff0c;A 代表神经网络主体, xt 是网络输入&#xff0c;ht是网络输出&#xff0c;循环结构允许信息从当前输出传递到下一次的网络输入。 一个递归神经网…

强烈推荐:一款中文AI问答、创作、绘画工具

前言 相信很多人已经听过ChatGPT这款人工智能机器人了&#xff0c;它能够根据用户输入的内容&#xff0c;自动生成智能回复。它使用自然语言处理技术&#xff0c;通过学习大量的文本资料&#xff0c;能够模拟人类的对话行为。它是由OpenAI开发的&#xff0c;一家非常伟大的人工…

6个月的测试,来面试居然要15K,我一问连5K都不值

2023年4月份我入职了深圳某家创业公司&#xff0c;刚入职还是很兴奋的&#xff0c;到公司一看我傻了&#xff0c;公司除了我一个自动化测试&#xff0c;公司的测试人员就只有2个开发3个前端1个测试还有2个UI&#xff0c;在粗略了解公司的业务后才发现是一个从零开始的项目&…

HNU-计算机系统-讨论课6

完整讲解视频&#xff1a;野生Gprof会梦见存储器山嘛&#xff1f;_哔哩哔哩_bilibili 别忘了一键三连哦 题 3&#xff1a; 在“存储器层次结构”一章的 6.6 节从存储器山的角度具象化 了存储器性能描述。 &#xff08; 1 &#xff09; 请阅读教材 6.6.1 内容&#xff08…

从 Elasticsearch 到 Apache Doris,10 倍性价比的新一代日志存储分析平台|新版本揭秘

日志数据的处理与分析是最典型的大数据分析场景之一&#xff0c;过去业内以 Elasticsearch 和 Grafana Loki 为代表的两类架构难以同时兼顾高吞吐实时写入、低成本海量存储、实时文本检索的需求。Apache Doris 借鉴了信息检索的核心技术&#xff0c;在存储引擎上实现了面向 AP …

京东金融Android瘦身探索与实践

作者&#xff1a;京东科技 冯建华 一、背景 随着业务不断迭代更新&#xff0c;App的大小也在快速增加&#xff0c;2019年~2022年期间一度超过了117M&#xff0c;期间我们也做了部分优化如图1红色部分所示&#xff0c;但在做优化的同时面临着新的增量代码&#xff0c;包体积一直…