广告
广告
广告
什么是DockerFiledockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。构建步骤:编写DockerFile文件docker build 构建镜像docker run我们从docker的镜像页面点击版本号时,可以访问到github上dockerfile的文件。以centos为例,大概如下:FROM scratch ADD centos-7-x86_64-docker.tar.xz / LABEL \ org.label-schema.schema-version="1.0" \ org.label-schem...
//模拟异步请求 function axiosFn() { return new Promise((resolve, reject) => { const flge = Math.random(); //随机值 setTimeout(() => { //大于0.7就是成功 if (flge > 0.7) { return resolve(flge); } else { return reject(...
什么是容器数据卷其作用就是方便容器与外部宿主机的文件交互,毕竟容器可以重启启动一个,但是数据只有一份啊,所以如果能将数据存在宿主机上,容器随便换,宿主机本身再定时备份,问题不就解决了。作用卷就是目录或者文件,存在一个或者多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过 Union File System , 提供一些用于持续存储或共享数据的特性:卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。特点数据卷可在容器之间共享或重用数据卷中的更改可以直接生效数据卷中的更改不会包含在镜像的更新中数据卷的生命周期一直...
打包命令docker commit # 这个和git的commit提交差不多 # 例子 docker commit -m="提交的描述信息" -a="作者" 提交的容器id 打包后的镜像名:tag版本号注意:实战测试以之前的Tomcat为例,默认情况下官方在webapps目录中是没有任何文件的,官方把默认的web文件放置在webapps.dist目录下,我们就可以把文件搬过来,生成一个自己的镜像。安装并搬运web文件docker pull tomcat # 下载完毕后运行 docker run -d -p 8080:8080 --name t...
整体文本引入b站UP主遇见狂神说的docker教程文档镜像是什么镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。镜像加载的原理UnionFS (联合文件系统)UnionFS(联合文件系统):Union文件系统(UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)。...
安装nginxdocker pull nginx # 下载完成后运行 docker run -d --name nginx1 -p 8080:80 nginx # 后台运行,容器命名为nginx1,将容器的80映射到主机的8080端口此时我们访问:localhost:8080就能看到Welcome to nginx!页面安装Tomcatdocker镜像里面的tomcat官方文档有这么一段命令:docker run -it --rm tomcat:9.0run可以直接自动下载对应的镜像,所以后面可以像pull那样接tag;-it是交互,--rm表示交互结束后,比如exit退出后,容器...
帮助命令docker version #版本信息 docker info #更加详细的系统信息 docker 命令 --help #万能命令文档地址:官方命令文档镜像命令docker images #查看所有镜像后面还可以接一些可选项Name, shorthandDefaultDescription--all , -a Show all images (default hides intermediate images)--digests Show digests--filter , -f Filter output based on conditions provided-...
const div = document.querySelector("div.box"); div.addEventListener("animationstart", function() { //动画开始运行触发 }); div.addEventListener("animationiteration", function() { //动画每执行一次触发一次,适用用多次动画 }); div.addEventListener("animationend", function() { //...
ts默认要求class中声明的属性必须初始化,所以,如果存在没有被初始化的属性,就会报这个错误。如果我们让他或者等于null,那么在调用属性的时候又会提示值可能为null,极度麻烦class A { data: { name: string } | null = null; } const a = new A(); console.log(a.data.name);然后你又不得不搞个非空断言。console.log((a.data!).name);每次都这么写非常麻烦。赋值方案既然他要赋值那么我们就赋值class A { data: { name: string }; c...
rotate的坐标轴和默认值z轴可以看成正对着自己脸的一根轴,每个轴的旋转方向默认如图箭头所示。所有的旋转角度,正值都是根据默认的旋转方向来得,负值则是相反。transform: rotateZ(45deg);只有Z轴的旋转再二维的界面才是有效的,如下图所示:因为在二维的界面Z轴的变化才是有效的,所以默认值的设置就是Z轴,所以简写形式等效于rotateZtransform: rotate(45deg); /*等同于rotateZ(45deg)*/translatetranslate的变化是根据元素的坐标轴而变化的,比如X轴移动100px;transform: translateX(100...
网页不能直接识别移动设备的实际像素大小再没有设置meta viewport的时候,网页只能识别硬件的物理像素,而非软件像素。物理像素:硬件本身的实际像素大小软件像素:设备尺寸限制,过大的像素并不能带来很好的体验,显示的内容过多反倒无法正常使用,于是有了软件像素,软件像素是基于一定像素比得到的值。比如 iPhone X的软件像素是:375px*812px;它的比是:3;那么它的物理像素就等于:(375*3)*(812*3)更多的对比可以去这个网站查看:mydevice然而实际上移动端设备都会有一个默认的宽度:980px,所以,即便我们没有设置meta viewport,网页也不可能真的使用...
子元素自身的order属性子元素的order的作用详解:默认情况下order的值都为0,如果这个值越小,那么就越靠近起始点,值越大,位置就越后,order其实用于移动元素的位置,而位置的方向则取决于父元素设置的:flex-direction子元素自身的align-self属性从正常角度,align-self是控制子元素y轴的对齐方式,也称侧轴对齐,这个y轴的定义也是取决于父元素flex-direction子元素自身的flex-basis属性flex-basis的效果,最好配合:flex-shrink:0;让子元素不被压缩。flex-basis会根据主轴的来设置元素的宽度还是高度:当主轴是...
windows和linux平台,他们之间的换行符是不一样的,mac之前也不一样,后来和linux保持统一。windows是CRLF,也就是\r\n;linux是LF,也就是\n;两个平台之间换行符不一样,在有代码规范要求的情况下,很容易就会触发报错,如eslint的报错:warning Delete ␍ prettier/prettier解决办法假设我们代码规范要求换行是LF;那我们需要进行以下配置:git提交时自动格式化换行符这个做法是防止有人本地编辑的时候没有改为LF的换行方式然后上传,导致别人拉库下来会运行报错。在项目根目录创建:.gitattributes 文件文件内写入:# L...
当有的时候,我们不想复制一个完整的文件或者文件夹的时候,我们可以通过链接映射的方式快速的将文件或者文件夹放置在某些地方。举个例子:我有一个A前端项目,再public目录下我需要放置另一个B前端项目打包后的dist目录,但是B项目是需要经常改动的,我不能每次改动一下就打包一次,然后把dist目录复制到A项目的public里面。显然这非常麻烦。如果我们将B项目的dist直接映射到A的public里面,那么每次打包,就不用复制了。怎么做?这就需要软连接或者硬连接了。什么是软连接和硬链接软链接软连接可以理解为windows下的快捷方式,但是快捷方式的删除不会影响到源文件,也不会被ide软件识别,...
起因我写了一个axios的get请求,他会在网页加载后运行,从服务器获取数据,根据status状态值来判断我是否需要进行弹窗提示,弹窗会有一个按钮,点击后会通过location.href跳转到另一个页面,在另一个页面,会有一个返回按钮,触发history.back()返回上一页。当然,在运行href跳转前,会通过api请求告诉后端,我已经点击了弹窗,下次请求不要再运行弹窗了。但是在下一个页面点击返回时,弹窗依旧会被弹出,后端说他没有看到请求记录,但是前端f12依旧可以看到api请求,并返回了200状态码。由于是手机调试,看不到具体的原因,只有在pc端,在不勾选停用缓存时,才能看到在请求的...
/* * @Author: mulingyuer * @Date: 2021-12-30 22:06:58 * @LastEditTime: 2022-01-03 05:22:30 * @LastEditors: mulingyuer * @Description: 手写promise * @FilePath: \undefinedc:\Users\13219\Desktop\promise.js * 怎么可能会有bug!!! */ /** * @description: 自定义promise * @param {fucntion} executor 执行器函数(同...
简介vscode通过ssh连接云服务器进行开发,服务器通过宝塔面板来进行可视化管理。系统采用腾讯维护的TencentOS Server,也就是centos的第三方维护版本。代码同步则使用git进行处理。[hide]服务器部署服务器部署相对简单。安装 TencentOS Server腾讯云里面有一台vps服务器,自己选择安装TencentOS Server 3.1版本,然后进行重装。安装宝塔宝塔官网:宝塔安装简单,自己ssh连接后安装即可,使用centos的安装链接。创建并绑定密匙在腾讯云管理页面左侧的菜单栏中找到密匙;这个密匙是用于ssh连接的,如果你懂ssh密匙链接,其实也可以跳过,只...
全局挂载vue3 对全局挂载做了调整,对全局挂载的方法增加的命名空间,用于独立存放,所以原先通过原型挂载的方式不推荐使用了。import { createApp } from "vue"; const app = createApp({}) app.config.globalProperties.$http = () => {}组件内调用最麻烦的<script lang="ts"> import { defineComponent,getCurrentInstance } from "vue"; ex...
fonts.less@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap'); .box { font-family: "Roboto"; }如果你再less文件中这么引入,那么一定是会报错的,这个报错要从两方面去理解:原生@import 语法被less占用less不支持在线css虽然less官方说如果你使用@import引入一个css文件,是会按照css原生语法去解析它的,但是它并没有说它支持一个在线链接,并且如果...
promise如果没有指定状态,那么就一直会处于pending中,如果长时间不处理,那么这个东西会一直存在于内存中,显然是不合理的。如果是一个超多请求项目,那么我们就需要考虑下性能问题了。promise中有一个rece方法,它接收一个promise作为值的数组,它的特性就是:哪个promise先执行,他就处理那一个,不管是resolve还是reject;在then中,他也只有一个值,不同于Promise.all方法返回的是一个数组,rece返回的值是最快完成的那个promise的返回值。利用这个特性,我们可以制作一个超时处理。function delayPromise(promise, ...
因为贫穷,所以在小黄鱼收了一个35包邮的E8820V2,但是默认的系统版本是v2.0.3;巨难用,想刷机,发现这个机器基本上都被人拿来做ap(桥接模式),要么就是升级了内存,用编码器直接刷的不死,但是本人没有这个条件,所以,只能找找看有没有官方的固件提供下载。找遍全网,只看到两个,一个是我目前用的官改固件,版本是:V2.0.8;还挺新,还有一个是原版固件,没有刷过,有兴趣可以尝试。这两个固件,除了原版我没有测试,官改的是可以直接用原装系统升级上去的,所以,实在是太棒了。感受官改的应该是精简了,反正感觉还可以,比之前的好很多。因为资源太少,所以我就分享一下吧,给和我一样的穷人一点希望。下载...
当项目需要和其他项目进行沟通的时候,往往常见的做法就是,我在a网站点击一个按钮,在链接中携带query参数啥的,然后去访问b网站页面。此时可能会有两种情况:跳转的链接就是b网站的具体链接地址。跳转的链接是b网站的一个跳板,跳板会对参数做一些操作,然后进行重定向。两种做法都各有优势:第一种省事简单,但是如果以后b网站链接层级发生变化,那么就会导致链接不可能,到时候还需要进行修改,很痛苦。第二种的话,我们需要写一个跳板页面,但是通过一些参数要求,甚至自身加上一些逻辑处理,那么他的功能性会更强一些。那么,在vue中,做一个重定向页面,怎么做?思路思路1利用路由守卫,当链接上存在某个参数的时候,...
最近评论