赞
踩
天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
K8S自动化部署JAVA项目(Gitlab CI/CD)请参考文章:
K8S部署Java项目(Gitlab CI/CD自动化部署)
官网参考文档
https://docs.docker.com/engine/reference/builder/
参数截图
Dockerfile文件中的关键字不区分大小写,大写小写都可以
以下为常用参数(关键字)
关键字 | 描述 |
---|---|
FROM | 指定基础镜像 如FROM docker:latest |
MAINTAINER | 指定文件作者 如李白 |
ENV | 配置环境变量 如ENV JAVA_HOME=/root/local/java/jdk1.8-.0.121 |
ARG | 用于定义变量后面引用 如JAR_FILE=target/*.jar 后面可用${JAR_FILE}方式引用 |
WORKDIR | 工作目录,即后续RUN、ADD等命令执行位置的路径 |
COPY | 拷贝本地文件到指定目录 如COPY ./tomcat-8.0 /root/tomcat,不支持压缩文件自动解压,文件只会被复制为普通文件 |
ADD | 与COPY相似,但除了复制本地文件和目录外,还有几点高级功能,1会在将压缩文件复制到目标目录前自动解压,2还支持使用url作为源路径从网络下载文件并复制到容器中,3在构建上下文中添加的文件可以是一个url,他会自动下载并复制到容器中,tips:建议用COPY,更简单直接 |
RUN | 执行linux的shell命令 如RUN mkdir -p /root/project |
EXPOSE | 指定容器运行时坚挺的端口,镜像使用者可看到 如EXPOSE 8800 |
ENTRYPOINT | 镜像中应用的启动命令,容器运行时调用 如ENTRYPOINT java -jar app.jar |
配置举例
以java项目为例使用Dockerfile文件打包并构建镜像
#关键字和值之间可以是空格" "也可以是等号"="
#指定基础镜像,以此镜像为基础构建
FROM openjdk:8-jdk-alpine
#作者
MAINTAINER hs
#指定容器的时区
ENV TZ=Asia/Shanghai
#复制文件到镜像中
COPY app.jar app.jar
#检查java版本
#RUN java -version
#RUN javac -version
#将app.jar添加到指定文件夹中,并自动解压缩(与COPY类似,二选一即可)
#ADD app.jar app.jar
#时区配置,可省略
#RUN ln -snf /usr/share/zonginfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#容器入口,该命令应该是将每个字符串组合起来,nohub java -jar app.jar
ENTRYPOINT ["nohup","java","-jar","app.jar"]
#如果不设置WORKDIR目录的路径为app.jar所在位置,则需要完整路径app.jar
#ENTRYPOINT ["nohup","java","-jar","/k8s-project/app.jar"]
#声明要监听的端口(暴露端口,容器内部的端口)
EXPOSE 8089
在docker中可直接构建镜像,操作如下
准备一个项目
和一个Dockerfile
文件
打标签,注意最后一个.
表示在当前位置执行,如果Dockerfile文件不在当前目录中,需要使用-f
指定Dockerfile文件位置
docker build -t 镜像名:镜像标签 .
或指定Dockerfile位置构建
docker build -t 镜像名:镜像标签 . -f /root/Dockerfile
推送镜像
docker push 镜像名:镜像标签
镜像名为springboot
镜像标签为v20240204
docker build -t springboot:v20240204 .
docker push springboot:v20240204
执行后即可生成镜像,并会将镜像推送到默认的dockerhub镜像仓库中
后续可通过该镜像部署项目,如docker run命令部署或者k8s的yaml文件部署
当配合gitlab ci/cd的.gitlab-ci.yml文件进行项目自动化部署时,Dockerfile文件最好与.gitlab-ci.yml一样存放在项目根目录
详情可参考:.gitlab-ci.yml文件参数配置和使用
感谢阅读,祝君暴富!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。