dockerFile制作镜像、并远程发布

1、FORM

用于指定基础镜像,也就是在指定的镜像上,增加上后续dockerFIle中设置的内容(新的软件、新的服务等)

FROM openjdk:8-jre

在这个容器中,就能直接使用java命令。

2、ENV 

用于设置环境变量,在后续的RUN命令中就能使用设置的变量。并且在容器中也能直接使用。

ENV PATHNUBERTEST="1"

3、WORKDIR 

用于设置后续容器的默认工作目录,相当于切换目录,如果没有设置它,默认目录就是"/"根目录。

WORKDIR /opt/tyjt

4、RUN 

就是将dockerFile制作为镜像。其中可以增加运行镜像是的参数

# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

在docker build 执行过程中,这里就是简单的统一镜像中的时间时区。也可以在这里提前安装一些软件,前提是得有网络。

我认为后续可能是将一些公共的软件,做成一个基础镜像,上传到docker私服中,然后直接FROM指定为基础镜像,就能使用那些软件啦。

5、ENTRYPOINT 

用于设置运行镜像后,在容器中的默认执行语句,如果是java项目,就需要在这里运行jar包,如此:

ENTRYPOINT ["java", "-jar", "/opt/tyjt/app.jar"]

这样运行镜像,删除容器后,就会执行它。

6、CMD 

使用这个可以修改变量

ENV JAR_PORT=8003
CMD java -jar /opt/tyjt/app.jar --server.port=$JAR_PORT

运行镜像时加上-e JAR_PORT=8004,单独使用CMD效果就是运行镜像后,的默认之心shell指令。

当同时出现ENTRYPOINT CMD时,CMD的参数会当作补充参数,拼接在ENTRYPOINT 后面。而且后续还可以根据-e JAR_PORT=8004覆盖修改,但是只会修改这一个参数,其他的CMD参数不会变

7、EXPOSE

容器对宿主机开放端口,然后就可以在docker run -p 宿主机端口:容器开发端口。

8、ARG 

ARG定义的变量不会在镜像中保留,因此它们不会在运行时可用,除非通过ENV指令将其转换为环境变量。

ARG IMAGES_POST=8002
ENV IMAGES_POST=${IMAGES_POST}
ENTRYPOINT java -jar /opt/tyjt/app.jar --server.port=${IMAGES_POST}

docker build --build-arg IMAGES_POST=8003 -t imagesName .

这样就能在构建镜像时覆盖掉定义的参数。

如果直接在RUN、CMD、ENTRYPOINT中使用,没有任何效果。

这里直接使用idea远程发布docker,编写Dockerfile文件:

# 基础镜像
FROM openjdk:8-jre
## 设置输出格式
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8

# 设定时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

VOLUME /tmp
WORKDIR /opt/tyjt
# 复制为ccp-data-0.0.1-SNAPSHOT.jar
ADD target/app.jar /opt/tyjt/app.jar

ENTRYPOINT ["java","-jar","/opt/tyjt/app.jar"]
# 声明容器提供服务端口
EXPOSE 8001

主要还是idea配置dockerfile构建配置,第一是要把maven配置好,它的打包插件,第二是idea的docker插件,有三个模式,我用的dockerFile模式;

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>springBootQueryCheck</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>2.7.11-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.7.11-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.29</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.4</version>
        </dependency>
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>2.0.9</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
            <version>2.2.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
            <version>2.7.11</version>
        </dependency>
    </dependencies>
//打包插件
    <build>
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.7.0</version>
                <configuration>
                    <mainClass>com.quxiao.QueryCheckApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

</project>

在这里面(运行Maven 目标.........)加上 :

clean package -U -DskipTests

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

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

相关文章

Android Compose 一:基础控件

Flutter 与 Compose 组件辣么像&#xff0c;难道是同一个google团队整的&#xff1b;也未深究&#xff0c;只是猜测。 创建项目 需要使用新版本Android studio&#xff0c;忽略步骤… 项目目录 MainActivity说明 1 系统默认页面 Preview 修饰的方法&#xff0c;只用来供开发…

物联网实战--平台篇之(七)应用界面设计

目录 一、米家APP分析 二、应用展示 三、应用列表 四、新建应用 五、重命名应用 本项目的交流QQ群:701889554 物联网实战--入门篇https://blog.csdn.net/ypp240124016/category_12609773.html 物联网实战--驱动篇https://blog.csdn.net/ypp240124016/category_12631333.…

快速配置 Nginx 来实现 GPT 流式传输

目录 1. Nginx 参考配置2. Nginx 核心参数3. 其他参数 场景&#xff1a;代理 ChatGPT、代理各种 GPT 工具套壳等。 1. Nginx 参考配置 支持 GPT 流式访问的配置如下&#xff0c;请根据实际需求适当取舍即可&#xff1a; server {listen 80;server_name chat.test.com; # 绑…

PCIE协议-2-事务层规范-Message Request Rules-Vendor_Defined Messages

2.2.8.6 厂商定义消息 厂商定义消息允许扩展PCI Express消息功能&#xff0c;可以作为PCI Express规范的一般扩展&#xff0c;也可以是厂商特定的扩展。本节通用地定义了与这些消息相关的规则。 厂商定义消息&#xff08;见表2-25&#xff09;使用图2-28中显示的头标格式。re…

Nios实验使用串口输出“Hello Nios-II”字符到笔记本电脑

目录 实验过程 创建工程 修改程序 编译工程 运行项目 效果实现 总结 参考 实验过程 硬件设计见博主上篇博客 软件部分设计 下面使用 Nios II Software Build Tools for Eclipse 来完成当前项目的软件开发。 启动 Nios II SBT 按照下图所示点击 Nios II Software Build…

计算机网络复习-传输层

概念 传输层是进程与进程之间的通信使用端口(Port)来标记不同的网络进程端口(Port)使用16比特位表示(0~65535) UDP协议详解 UDP&#xff1a;用户数据报协议数据报&#xff1a;应用层传输过来的一个完整的数据不合并&#xff0c;不拆分 UDP的头部 UDP特点 UDP是无连接协…

【R语言篇】医学生福音,全球疾病负担数据库GBD 2021即将更新!!!

今天介绍即将于5月16日更新的全球疾病负担数据库GBD 2021&#xff0c;相信数据一经发表&#xff0c;过不了多久pubmed又将涌现一大波疾病负担相关文章。 Global Burden of Disease Study 2021 (GBD 2021) Data Resources | GHDx 在查找GBD相关文献方面&#xff0c;我个人还是比…

PS的文字点阵 文字边缘虚 为什么在Ps中打出来的字是带有锯齿状模糊的?

此方法主要针对低像素文字 关键部分 (4 封私信 / 80 条消息) 为什么在Ps中打出来的字是带有锯齿状模糊的&#xff1f; - 知乎 (zhihu.com)https://www.zhihu.com/question/54412515

【牛客】SQL211 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary

1、描述 有一个薪水表salaries简况如下&#xff1a; 请你获取薪水第二多的员工的emp_no以及其对应的薪水salary&#xff0c; 若有多个员工的薪水为第二多的薪水&#xff0c;则将对应的员工的emp_no和salary全部输出&#xff0c;并按emp_no升序排序。 2、题目建表 drop table …

8个手机宝藏App,建议收藏!

AI故事视频生成&#xff0c;一站式生成小说漫画推文、儿童故事、民间故事等https://aitools.jurilu.com/ 1.地图车机版——百度地图 百度地图&#xff0c;作为新一代的人工智能地图&#xff0c;以其智能语音、智能导航系统、智能路线规划和智能推荐方案而著称。它不仅提供传统…

MATLAB模拟退火算法、遗传算法、蚁群算法、粒子群算法

概况 模拟退火算法、遗传算法、蚁群算法、粒子群算法等算法&#xff0c;都是属于概率算法&#xff0c;不绝对&#xff0c;不迅速&#xff0c;能用其它方式解决的问题&#xff0c;不要用这些相对复杂的算法&#xff0c;比如有明确的线性关系或者非线性对应关系。这里的概率算法…

IP跳变是什么,有什么作用?

IP跳变&#xff0c;简单来说&#xff0c;就是用户在使用网络时&#xff0c;不固定使用一个IP地址&#xff0c;而是定期或根据需求切换到另一个IP地址。这种技术为用户在网络环境中提供了一定的灵活性和安全性。 首先&#xff0c;我们来看看IP跳变的具体实现方式。当用户需要切…

CUDA-均值滤波算法

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 实现原理 均值滤波是一种常见的图像处理方法&#xff0c;用于去除图像中的噪声。其原理很简单&#xff1a;对图像中的每个像素&a…

高频电源模块TL22010-T2整流模块TL22010-T3用途

直流屏充电模块TL22010-T2电源模块TL22010-T3&#xff0c;整流模块TL11010-T3&#xff0c;其他TL系列型号有&#xff1a;TL11020-T3&#xff0c;TL11010-T2&#xff0c;TL11020-T2&#xff0c;TL22010-T&#xff0c;TL-22010-T&#xff0c;TL-11010-T&#xff0c;TL-22005-T&am…

排序-选择排序(selection sort)

选择排序&#xff08;selection sort&#xff09;的工作原理非常简单&#xff1a;开启一个循环&#xff0c;每轮从未排序区间选择最小的元素&#xff0c;将其放到已排序区间的末尾。选择排序的主要特点包括&#xff1a; 时间复杂度&#xff1a; 无论最好、最坏还是平均情况&…

【图像增强(空域)】基于灰度变换的图像增强及Matlab仿真

1. 摘要&#xff1a; 空域内的图像增强就是调整灰度图像的明暗对比度&#xff0c;对图像中各个像素的灰度值直接进行处理。常用的方法包括&#xff1a;灰度变换增强和直方图增强。 2. 原理&#xff1a; 灰度变换增强是空域ne对图像进行增强的一种简单且直接的方法。灰度变换…

26版SPSS操作教程(高级教程第二十章)

目录 前言 粉丝及官方意见说明 第二十章一些学习笔记 第二十章一些操作方法 神经网络与支持向量机 人工神经网络&#xff08;artificial neural network&#xff0c;ANN&#xff09; 假设数据 具体操作 结果解释 对案例的进一步分析 结果解释 ​编辑 尝试将模型复…

Pikachu 靶场 XXE 通关解析

前言 Pikachu靶场是一种常见的网络安全训练平台&#xff0c;用于模拟真实世界中的网络攻击和防御场景。它提供了一系列的实验室环境&#xff0c;供安全专业人士、学生和爱好者练习和测试他们的技能。 Pikachu靶场的目的是帮助用户了解和掌握网络攻击的原理和技术&#xff0c;…

软件测评中心详细介绍

软件产品已成为企业和个人工作中不可或缺的一部分。然而&#xff0c;面对市场上琳琅满目的软件产品&#xff0c;用户如何判断其质量、性能及是否满足自身需求呢&#xff1f;这时&#xff0c;软件测评中心的作用就显得尤为重要。本文将详细介绍软件测评中心的定义、功能及其重要…

【全开源】商会招商项目系统基于FastAdmin+ThinkPHP+Uniapp(源码搭建/上线/运营/售后/维护更新)

一款基于FastAdminThinkPHPUniapp开发的商会招商项目系统&#xff0c;是一个集PC和移动端功能于一体的解决方案&#xff0c;线上线下进行服务&#xff0c;围绕 活动报名、在线课程、项目大厅、线下签到、会员系统等。为商会提供了更加便捷高效的管理方式&#xff0c;提升了商会…