首页 > 编程语言 >002-dockerfile部署java项目

002-dockerfile部署java项目

时间:2023-01-29 17:01:53浏览次数:64  
标签:src git java -- 002 build home dockerfile

1. dockerfile展示

注意,这里是将DockerFile 配置文件放到了maven项目目录内,和pom.xml同级目录。

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

# 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/settings/settings.xml /root/.m2/settings.xml
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","-DSpring.profiles.active=pro","-Dspring.cloud.nacos.username=only_read","-Dspring.cloud.nacos.password=nacos","-jar","/usr/local/lib/demo.jar"]

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

2. 新建镜像

docker build官方文档

docker build [OPTIONS] PATH | URL | -·

docker build -f dockerfile -t kanban:0.0.1 .
也可以直接从代码仓拉去dockerfile
docker build --no-cache -f demo/demo.dockerfile https://github.com/CICD.git

Name,shorthand default description
--build-arg Set build-time variables
--file,-f Name of the Dockerfile (Default is 'PATH/Dockerfile')
--memory,-m Memory limit
--rm true Remove intermediate containers after a successful build
--tag,-t Name and optionally a tag in the 'name:tag' format

3. 部署容器

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

去掉-d可以用来测试,但是退出时会关闭容器。

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

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


docker exec -it 594 /bin/bash

ssh 方式接入容器

标签:src,git,java,--,002,build,home,dockerfile
From: https://www.cnblogs.com/bloodcolding/p/17073154.html

相关文章

  • 过滤和监听 c# java
    用JAVA开发WEB项目时,在处理特殊的HTTP请求,或全局处理一些页面代码时会用到监听器、过滤器,jsp--过滤器与监听器1.过滤器1.1简介过滤器是处于客户端与服务器资源文件之......
  • ORM哪家强?java,c#,php,python,go 逐一对比, 网友直呼:全面客观
    前言最近一段时间,我使用golang开发了一个新的ORM库。为了让这个库更好用,我比较研究了各语言的主流ORM库,发现有一些语言的ORM库确实很好用,而有另外一些语言的库那不是一般......
  • java常用的设计模式
     java的设计模式一、单例模式  基本概念:保证一个类仅有一个实例,并提供一个访问它的全局访问点。常见写法:  1.饿汉式publicclassSingleton{priva......
  • JavaScript 文件上传
    JavaScript可以使用表单提交来实现文件上传。首先,在HTML中创建一个文件输入框:<inputtype="file"id="fileInput">然后,在JavaScript中获取文件输入框的引用,并在其上......
  • JavaWeb-VUE&Element
    JavaWeb-VUE&Element1,VUE1.1概述Vue是一套前端框架,免除原生JavaScript中的DOM操作,简化书写。Mybatis是用来简化jdbc代码编写的;而VUE是前端的框架,是用来简化Ja......
  • Java百分比、BigDecimal小数互转
    1、百分比转为BigDecimal小数Stringpercent="66.60%";percent=percent.replace("%","");Floatf=Float.valueOf(percent)/100;BigDecimaldecimal=newBigDeci......
  • 如何让Java编译器帮你写代码
    作者:京东零售刘世杰导读本文结合京东监控埋点场景,对解决样板代码的技术选型方案进行分析,给出最终解决方案后,结合理论和实践进一步展开。通过关注文中的技术分析过程和技......
  • 使用 JavaScript 从字符串中提取数字
    在JavaScript中,有多种方法可以从字符串中提取数字。一种方法是使用 match() 方法和正则表达式来搜索字符串中的所有数字。另一种方法是使用 replace() 方法和正则表达式从......
  • 解释 JavaScript 中计时器的工作原理
    在JavaScript中,计时器是一个非常值得注意的功能。与普通的手表计时器一样,我们可以一次启动计时器,并在特定时间后执行JavaScript中的函数或代码。简单来说,我们可以使用计......
  • 怎么理解java的一次编译,到处执行。
    “所有平台上的JVM向编译器提供相同的编程接口”,接口是对输入和输出的一种规定,就是对数据类型的规定,java的编译器是向JVM提供字节码文件的,也就是说,不管你这个JVM是哪个平台......