建木-自动化部署-dockerfile文件书写-自动化部署jar包完成docker运行镜像-dockerfile书写介绍

阿丹:

        在自动化部署的时候jar包要如何进行部署。就需要通过使用书写dockerfile文件来进行触发的时候执行docker指令来完成镜像的部署以及运行。

什么是dockerFile

  1. dockerfile是自定义镜像的一套规则
  2. dockerfie由多条指令构成,Dockerfile中的每一条指令都会对应于Docker镜像中的每一层

 dockerfile的书写规则

Dockerfile是用于构建Docker镜像的文本文件。它包含了一系列指令,用于描述如何组织和配置镜像。下面是一些常见的Dockerfile语法和规则:

  1. 每个指令占一行,并以大写字母开头。例如:FROM, RUN, COPY等。

  2. 注释以井号(#)开头。

  3. 指令按照顺序逐行执行,每行的结果都会作为下一行指令的输入。

  4. 可以使用反斜杠()来换行。

  5. 可以使用环境变量(ENV)和构建参数(ARG)来设置在构建过程中使用的值。

  6. 指令可以重复出现,但只有最后一次的结果会被保留。

  7. Dockerfile的第一条指令通常是FROM,指定基础镜像。

  8. 每个指令都会在镜像中创建一个新的中间层(layer),这些中间层可以被重用以提高构建效率。

  9. 使用COPY或ADD指令来将文件从主机复制到镜像中。

  10. 使用RUN指令在镜像中执行命令。

  11. 使用CMD指令设置容器启动时要执行的默认命令。

关于dockerFile一个简单的模版

# 设置基础镜像
FROM 

# 设置作者信息
LABEL maintainer="Your Name "

# 设置工作目录
WORKDIR /app

# 将主机的文件复制到镜像中
COPY . .

# 安装所需的依赖
RUN 

# 设置容器启动时要执行的命令
CMD 

在这个模板中:

  • 代表你选择的基础镜像,例如ubuntu, node, 或者其他适合你项目的镜像。

  • LABEL指令用于提供有关镜像的元数据,比如作者信息等。

  • WORKDIR指令设置镜像中的工作目录。

  • COPY指令将当前目录中的文件复制到镜像中的工作目录。

  • RUN指令用于在镜像中执行命令,例如安装依赖等。

  • CMD指令设置容器启动时要执行的默认命令。

这样就可以在我们自动化部署的时候进行创建镜像以及启动容器。

注意:在书写dockerfile文件的时候一定要进行jar包运行的测试。

我这里提供一个我项目中书写的dockerfile文件

FROM openjdk:17-ea-slim
LABEL authors="adn"

#创建我的工作目录
RUN mkdir "/yunseven"
#暴露端口
EXPOSE 9202
#创建着陆点 登录进入的目录
WORKDIR "/yunseven"
#复制新的目录运行程序
COPY   ./target/yunseven-modules-gen.jar /yunseven/app.jar
#挂载日志目录
VOLUME /yunseven/logs/yunseven-modules-gen
#运行我的jar包
CMD ["java","-jar","/yunseven/app.jar"]

文件解释:

  1. FROM openjdk:17-ea-slim: 使用基于OpenJDK 17 Early Access版本的slim镜像作为基础镜像。
  2. LABEL authors="adn": 添加一个作者标签,值为"adn"。
  3. RUN mkdir "/yunseven": 在容器内创建一个名为"yunseven"的工作目录。
  4. EXPOSE 9202: 暴露容器的9202端口,以便可以从外部访问该端口。
  5. WORKDIR "/yunseven": 设置"/yunseven"目录作为登录容器后的默认工作目录。
  6. COPY ./target/yunseven-modules-gen.jar /yunseven/app.jar: 将宿主机中./target/yunseven-modules-gen.jar文件复制到容器内的/yunseven/app.jar路径。
  7. VOLUME /yunseven/logs/yunseven-modules-gen: 创建一个容器卷,绑定到容器内的/yunseven/logs/yunseven-modules-gen目录,该目录将在容器运行期间用于存储日志。
  8. CMD ["java","-jar","/yunseven/app.jar"]: 在启动容器时运行的默认命令,执行java -jar /yunseven/app.jar来运行Java应用程序。

总结起来,此代码段使用Docker构建了一个基于OpenJDK 17的镜像,并将Java应用程序的JAR文件复制到容器内的工作目录中。然后,在容器启动时,会运行该JAR文件以启动Java应用程序。该容器会将日志存储在容器卷中,可通过绑定到宿主机的目录来访问。

你可能感兴趣的:(部署项目,自动化,docker,运维)