当前位置: 首页 > 编程日记 > 正文

Dockerfile springboot项目拿走即用,将yml配置文件从外部挂入容器

Dockerfile 将springboot项目jar包打成镜像,并将yml配置文件外挂。

# 以一个镜像为基础,在其上进行定制。就像我们之前运行了一个 nginx 镜像的容器,再进行修改一样,基础镜像是必须指定的。而 FROM 就是指定 基础镜像,因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令。
FROM centos:7
# 声明作者
MAINTAINER developer
# 在构建镜像时执行脚本
RUN yum -y install java
# 指定工作目录。用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在。
WORKDIR /opt/
# 复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
COPY test-0.0.1-SNAPSHOT.jar /opt/test/
COPY application.yml /opt/test/application.yml
# 仅仅只是声明端口。
EXPOSE 8899
# 类似于 RUN 指令,用于运行程序
# 优点:在执行 docker run 的时候可以指定 ENTRYPOINT 运行所需的参数。
# 注意:如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效。
ENTRYPOINT ["java","-Dspring.config.location=/opt/test/application.yml","-jar","/opt/test/test-0.0.1-SNAPSHOT.jar"]

上面用到的复制指令为COPY,还有一个命令为ADD,ADD 指令和 COPY 的使用格类似(同样需求下,官方推荐使用 COPY)。功能也类似,不同之处如下:

  • ADD 的优点:在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。
  • ADD 的缺点:在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。

去掉注释:

FROM centos:7
MAINTAINER developer
RUN yum -y install java
WORKDIR /opt/
COPY test-0.0.1-SNAPSHOT.jar /opt/test/
COPY application.yml /opt/test/application.yml
EXPOSE 8899
ENTRYPOINT ["java","-Dspring.config.location=/opt/test/application.yml","-jar","/opt/test/test-0.0.1-SNAPSHOT.jar"]

相关文章:

解决gitte提交报错 error: GE007: Your push would publish a private email address.

错误情况&#xff1a; gitte提交报错&#xff0c;无法提交上去&#xff0c;报错如下&#xff1a; remote: Powered by GITEE.COM [GNK-6.0] remote: error: GE007: Your push would publish a private email address. remote: You can make your email public or disa…

Reject: HTTP ‘DELETE‘ is not allowed, Not injecting HSTS.....DELETE请求PUT请求跨域问题

CORS&#xff08;DELETE请求、PUT请求&#xff09; Reject: HTTP DELETE is not allowed [DEBUG] 2021-08-25 15:23:52.401 [http-nio-10010-exec-1] HstsHeaderWriter.writeHeaders(169) - Not injecting HSTS header since it did not match the requestMatcher org.springf…

Not injecting HSTS header since it did not match the requestMatcher HSTS设置问题解决

HSTS请求设置 错误描述&#xff1a;在使用文件上传功能时&#xff0c;form表单提交带有header数据的请求时遇到这个问题&#xff0c;报错如下&#xff1a; Not injecting HSTS header since it did not match the requestMatcher org.springframework.security.web.header.wr…

restTemplate http请求报错:no suitable HttpMessageConverter found for response type and content type

报错信息&#xff1a; org.springframework.web.client.UnknownContentTypeException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.xxx] and content type [text/html;charsetutf-8] 异常原因&#xff1a;RestTempla…

mongo报错:not authorized on bb to execute command { create: \“xxx\“...}

mongo报错&#xff1a; {"ok" : 0,"errmsg" : "not authorized on bb to execute command { create: \"a\", capped: \"1\", lsid: { id: UUID(\"f01a76ec-6261-4886-9a3f-e07169eed122\") }, $db: \"bb\" …

阿里云如何将服务器添加至跳板机,如何将服务器添加至jumpsever

如何将服务器添加至跳板机。 获取跳板机/root/.ssh/id_rsa.pub 中的内容 登陆要添加到跳板机的目标机器 /root/.ssh/authorized_keys 将跳板机id_rsa.pub 内容复制到目标机器的authorized_keys中&#xff0c;累加在后面。 目标机器执行service sshd restart 在跳板机控制台添加…

zip压缩多个文件,解压时不包含目录层级

假设我们有个目录叫 dev&#xff0c;dev中有很多文件&#xff0c;我们想要将dev中的文件打包&#xff0c;名字可能叫dev.zip,但当我们解压的时候&#xff0c;不想要解压生成一个dev目录&#xff0c;想要直接解压在当前目录&#xff0c;这样如何压缩呢&#xff1f; # 进入dev目…

过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件

过滤Linux下不同大小的文件&#xff0c;linux查找当前目录下 M/G 大小的文件&#xff0c;删除Linux下指定大小的文件 find ./ -type f -size 1G| xargs rm在清理系统日志文件、备份文件等场景中&#xff0c;可以使用这个命令。 这里的参数还可以改为 100M 等等&#xff0c;也…

mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string

mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string ‘oThZwuK9C-3uWaJaXtbuLJUFTTR4’ 解决方法&#xff1a; 在使用mybatis进行部分字段查询时&#xff0c;查询结果需要放置在对象中&#xff0c;如果参数不全&am…

数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

数据库中自定义排序 场景&#xff1a;有一张banner表&#xff0c;表中有一个status字段&#xff0c;有0&#xff0c; 1&#xff0c; 2三个状态位&#xff0c;我想要 1&#xff0c;0&#xff0c;2的自定义排序&#xff08;这里是重点&#xff09;&#xff0c;然后再进行之上对s…

docker报错:driver failed programming external connectivity on endpoint, iptables:No chain by that name

docker 报错&#xff1a; Error response from daemon: Cannot restart container hello: driver failed programming external connectivity on endpoint hello (e58d18c830689e296c0fafdd98bf56e973cee3a3fbee8a3f002d46784f69ae70): (iptables failed: iptables --wait -t n…

系统架构升级要不要上微服务?历“久”弥新微服务——你真的需要升级微服务架构吗

在 《微服务架构设计模式》 一书中&#xff0c;作者总结了关于微服务的一些“重点”&#xff0c;原文如下&#xff1a; 中国企业和开发者对微服务架构的热情让我印象深刻。但如同我给所有客户的忠告一样&#xff0c;我想对本书的读者说: 第一&#xff0c;要记住微服务不是…

在k8s中使用gradle构建java web项目镜像Dockerfile

在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chowngradle:gradle . /home/gradle/src WORKDIR /home/gradle/src RUN gradle build --no-daemonFROM openjdk:8-jre-slimEXPOSE 10010RUN mkdir /appCOPY --frombuild /home/gradle/sr…

致26岁的自己

2021年10月17日&#xff0c;晴 想到很久很久没有去记录和输出想法&#xff0c;加上最近在不停地不停地思考&#xff0c;总结一下&#xff0c;并给两年后的自己做一个方向性的规划。 首先就是目前所取得的一个阶段性成果&#xff0c;到目前为止&#xff0c;我已经工作两年。在这…

阿里云K8S容器服务的使用

使用阿里云k8s构建服务一. 上传镜像二. k8s运行三. 服务配置导入四. 服务路由五. 节点亲和性和污点管理一. 上传镜像 在阿里云控制台找到“容器镜像服务”&#xff0c;开启镜像服务&#xff0c;这里选择个人实例即可&#xff08;个人版限额&#xff0c;企业版付费&#xff09;…

nginx配置http、https访问,nginx指定ssl证书,阿里云腾讯云华为云设置nginx https安全访问

nginx配置http、https访问 要设置https访问需要从对应的云厂商申请证书&#xff0c;并下载Nginx证书到服务器。 我这里从阿里云申请了免费的域名证书&#xff0c;然后将证书放置在服务器的/etc/ssl/.com/路径下&#xff0c;开始配置 这里直接上server节点&#xff0c;放在你…

使用hello word写小说

2021-11-12 使用hello word写小说

2021-10-27 我与地坛

2021-10-27 我与地坛 要是有些事我没说&#xff0c;地坛&#xff0c;你别以为是我忘了&#xff0c;我什么也没忘&#xff0c;但是有些事只适合收藏。不能说&#xff0c;也不能想&#xff0c;却又不能忘。它们不能变成语言&#xff0c;它们无法变成语言&#xff0c;一旦变成语言…

mysql查询字段大小写结果相同,mysql大小写查询不敏感,mysql5.7查询不区分大小写解决方案。

下面有两条sql&#xff0c;主键查询&#xff0c;在mysql中查询到的结果相同。 SELECT* FROM USER WHEREid EM58hdK4nXC;SELECT* FROM USER WHEREid em58hdk4nxc;这种情况就是mysql查询大小写结果相同&#xff0c;因为大小写查询不敏感。 解决方法&#xff1a; 工具中&…

redisson get()数据报错,missing type id property ‘@class’

redisson get()数据报错&#xff1a; com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Missing type id when trying to resolve subtype of [simple type, class java.lang.Object]: missing type id property ‘class’ 详细报错信息如下&#xff1a; com.fast…

go build 编译报错 missing go.sum entry for module providing package

go build 编译报错 missing go.sum entry for module providing package 解决方法 // 移除未使用的依赖 go mod tidy再次编译&#xff0c;就可以了。

在kotlin companion object中读取Bean,注入Bean对象

在kotlin companion object中读取Bean&#xff0c;注入Bean对象 在使用kotlin时&#xff0c;或多或少地会使用到一些公共组件&#xff0c;如 http、 mongo、 redis相关的组件。 使用组件时&#xff0c;我们往往会自定义一些通用的方法&#xff0c;用以全局调用&#xff0c;作…

locust入门:单机使用locust运行压力测试

locust的官方文档在这里&#xff1a; http://docs.locust.io/en/stable/ 前置&#xff1a;locust的测试脚本使用为python&#xff08;若未安装python环境&#xff0c;可以搜索安装python&#xff09; 1. 在已有的python环境中&#xff0c;使用pip3 install locust安装locust 2…

本地打包Docker镜像上传至阿里云远程仓库(一站式脚本)

打包镜像上传至远程仓库&#xff1a; 1. 本地项目为 mytest-project 2. 仓库为阿里云镜像仓库 registry.cn-beijing.aliyuncs.com/test/mytest-project #!/bin/sh echo "开始制作镜像..." image_tagdate %Y%m%d #_%H%M echo "当前时间&#xff1a;$image_tag…

mysql建立联合索引,mysql建立唯一键,mysql如何解决重复记录联合索引

在项目中&#xff0c;常常要用到联合唯一 在一些配置表中&#xff0c;一些列的组合成为一条记录。 比如&#xff0c;在游戏中&#xff0c;游戏的分区和用户id会形成一条记录。(比如&#xff0c;一个qq用户可以在艾欧尼亚、德玛西亚创建两个账号) 添加联合唯一索引 alter t…

关于新技术的引入原则 ——从零开始学架构

不以解决实际问题引入的技术都耍流氓。 新技术的引入不是为了证明自己&#xff0c;而是为了解决实际项目中遇到的问题。希望诸位能够控制住自己的心魔。 新技术的引入要求应该是解决的问题大于带来的问题。 再引入新技术&#xff0c;请在confluence中写下你的充足理由&#xff…

端口映射问题:Bad Request This combination of host and port requires TLS.

错误信息&#xff1a; Bad Request This combination of host and port requires TLS.遇到上面的错误信息&#xff1a;如果是通过域名访问&#xff0c;则该域名后配置的转发端口映射错误。 如果是通过ip端口 或者 域名端口访问&#xff0c;则为你端口填写错误。 我出现过若干…

正式压力测试:locust进阶,超简单搭建生产级locust集群

locust进阶&#xff0c;搭建生产级locust集群 本教程基于k8s集群搭建&#xff0c;使用helm作为包管理工具 通过helm安装locust&#x1f447;两个命令 helm repo add deliveryhero https://charts.deliveryhero.io/ helm install [起个服务名] deliveryhero/locust地址为&#…

mysql并发更新数据,多用户并发修改数据解决方案。

mysql并发更新数据&#xff0c;多用户并发修改数据解决方案。 在系统中&#xff0c;有一些如余额、资产、积分的数据&#xff0c;是要保证数据一致性的。如&#xff0c;一个人使用两个设备同时进行消费操作&#xff0c;如何保证数据一致性的问题。 我们一起来思考一下&#xf…