10 2021 档案
摘要:背景 写 shell 脚本的时候想根据系统版本来做条件判断,所以这篇就是这里搬那里搬,当做记录了 cat /proc/version 获取内核信息 [root@poloyy ~]# cat /proc/version Linux version 4.18.0-240.22.1.el8_3.x86_6
阅读全文
摘要:背景 有多个自己的云服务器,都要安装 docker,所以就尝试将安装的步骤转换成 shell 脚本,回头可以一键执行~ 创建 shell 脚本 touch install_docker.sh chmod 777 install_docker.sh 一键安装 docker 的 shell 脚本 yum
阅读全文
摘要:VOLUME 一句话总结 作用:创建一个匿名数据卷挂载点 格式: VOLUME ["/data"] 详解:运行容器时可以从本地主机或其他容器挂载数据卷,一般用来存放数据库和需要保持的数据等 实际栗子 VOLUME ["/data"] 这里的 /data 目录就会在运行时自动挂载为匿名卷,任何向 /d
阅读全文
摘要:ARG 作用:定义创建镜像过程中使用的变量 格式: ARG <name>[=<default value>] 详解 在执行 docker build 时,可以通过 --build-arg <参数名>=<值> 来为声明的变量赋值 当镜像编译成功后,ARG 指定的变量将不再存在(ENV指定的变量将在镜像
阅读全文
摘要:SHELL SHELL ["executable", "parameters"] SHELL 指令可以指定 RUN、ENTRYPOINT、CMD 指令的 shell,Linux 中默认为 ["/bin/sh", "-c"] 小栗子 SHELL ["/bin/sh", "-c"] RUN lll ;
阅读全文
摘要:HEALTHCHECK 作用 健康检查 当在一个镜像指定了 HEALTHCHECK 指令后,用其启动容器,初始状态会为 starting,在 HEALTHCHECK 指令检查成功后变为 healthy,如果连续一定次数失败,则会变为 unhealthy 格式 # 设置检查容器健康状况的命令 HEAL
阅读全文
摘要:一段话总结完 COPY 作用:复制内容到镜像 格式: COPY <src> <dest> 详解:复制本地主机的 <src>下内容到镜像中的 <dest>,目标路径不存在时,会自动创建。 <src>:可以是 Dockerfile 所在目录的一个相对路径(文件或目录) <dest>:可以是镜像内绝对路径
阅读全文
摘要:一段话总结完 ADD 作用:添加内容到镜像 格式: ADD <src> <dest> 详解:该命令将复制指定的 <src> 路径下内容到镜像中的 <dest> 路径下 <src>:可以是 Dockerfile 所在目录的一个相对路径(文件或目录);也可以是一个 URL;还可以是一个 tar 文件(自
阅读全文
摘要:ENTRYPOINT 两种写法 # exec 格式 ENTRYPOINT ["executable", "param1", "param2"] # shell 格式 ENTRYPOINT command param1 param2 重点 ENTRYPOINT 指定镜像的默认入口命令,该入口命令会在启
阅读全文
摘要:USER 指定运行容器时的用户名或 UID,后续的RUN等指令也会使用指定的用户身份 USER <user>[:<group>] 或 USER <UID>[:<GID>] 小栗子 USER www 当容器中运行的服务不需要管理员权限时,可以先建立一个特定的用户和用户组,为它分配必要的权限,使用 US
阅读全文
摘要:ENV 定义环境变量 ENV <key>=<value> ... # 但只能设置一个环境变量 ENV MY_VAR my-value 使用环境变量 通过 ENV 指令可以声明环境变量,可以在以下指令中使用环境变量 ADD COPY ENV EXPOSE FROM LABEL STOPSIGNAL U
阅读全文
摘要:CMD 指定容器默认执行的命令 # exec 形式,推荐 CMD ["executable","param1","param2"] CMD ["可执行命令", "参数1", "参数2"...] # 作为ENTRYPOINT的默认参数 CMD ["param1","param2"] # shell C
阅读全文
摘要:EXPOSE 通知 Docker 容器在运行时监听指定的网络端口 EXPOSE 端口号 EXPOSE 端口号/协议 默认协议是 TCP 同时在 TCP、UDP 上暴露端口 EXPOSE 80/tcp EXPOSE 80/udp EXPOSE 原理 个人理解:EXPOSE 暴露的端口更像是指明了该容器
阅读全文
摘要:WORKDIR 切换到镜像中的指定路径,设置工作目录 在 WORKDIR 中需要使用绝对路径,如果镜像中对应的路径不存在,会自动创建此目录 一般用 WORKDIR 来替代 RUN cd <path> && <do something> 切换目录进行操作的指令 WORKDIR 指令为 Dockerfi
阅读全文
摘要:RUN 运行命令 shell 形式 命令在 shell 中运行 Linux 上默认为 /bin/sh -c Windows 上 cmd /S /C RUN <command> exec 形式 RUN ["executable", "param1", "param2"] 必须双引号,不能是单引号 两种
阅读全文
摘要:FROM 指明当前的镜像基于哪个镜像构建 dockerfile 必须以 FROM 开头,除了 ARG 命令可以在 FROM 前面 FROM [--platform=<platform>] <image> [AS <name>] FROM [--platform=<platform>] <image>
阅读全文
摘要:LABEL 可以为生成的镜像添加元数据标签信息,这些信息可以用来辅助过滤出特定镜像 LABEL <key>=<value> <key>=<value> <key>=<value> ... 栗子一 # key 加了 " LABEL "com.example.vendor"="ACME Incorpor
阅读全文
摘要:Dockerfile 指令汇总 指令 说明 FROM 指明当前的镜像基于哪个镜像构建 ARG 定义构建镜像过程中使用的变量 LABEL 标记镜像信息,添加元数据 EXPOSE 通知 Docker 容器在运行时监听指定的网络端口 ENV 指定环境变量 ENTRYPOINT 指定镜像的默认入口命令 VO
阅读全文
摘要:背景 [root@poloyy ~]# yum makecache fast usage: yum makecache [-c [config file]] [-q] [-v] [--version] [--installroot [path]] [--nodocs] [--noplugins] [
阅读全文
摘要:背景 在自己的服务器上想通过 nginx 镜像创建容器,并挂载镜像自带的 nginx.conf 文件 docker run -it -d -v ~/nginx.conf:/etc/nginx/nginx.conf nginx 但是报错了 [root@poloyy ~]# docker run -it
阅读全文
摘要:背景 mac 电脑默认已经装了 jdk1.8,但是命令行执行 mvn 会报 command not found 解决方案 默认安装的 jdk 是没有配置环境变量的,需要配置一下 修改 ~/.bash_profile 在最后加上 export JAVA_HOME=/Library/Java/JavaV
阅读全文
摘要:默认安装版本 > java -version java version "1.8.0_151" Java(TM) SE Runtime Environment (build 1.8.0_151-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.151-
阅读全文
摘要:背景 自我学习ing..然后在 1c2g 的云服务器上起了 5 个 mysql 集群节点,然后输入命令就开始卡了,开始怀疑是不是系统资源爆掉了 来到阿里云后台 因为服务器已经连不上了,没办法通过 top 等命令查看系统资源情况,只能来到控制台查看了 然后就看到 CPU、内存都被打爆了...系统负载节
阅读全文
摘要:简介 brew 常用命令 Homebrew 是一款自由及开放源代码的软件包管理系统,用以简化 macOS 和 linux 系统上的软件安装过程 它拥有安装、卸载、更新、查看、搜索等很多实用的功能,通过简单的一条指令,就可以实现包管理,十分方便快捷 Homebrew 主要有四个部分组成 名称说明 br
阅读全文
摘要:临时使用 npm --registry https://registry.npm.taobao.org install express 使用 cnpm npm install -g cnpm - -registry=https://registry.npm.taobao.org 如:cnpm -ex
阅读全文
摘要:安装并使用 n sudo npm install -g n 更换node版本 // 更新到指定版本,比如 8.x.x sudo n v8 // 更新到指定版本,比如 9.x.x sudo n v9 // 更新到最新的稳定版 sudo n stable // 更新到最新版本 sudo n latest
阅读全文
摘要:什么是 PEP8 官方:https://www.python.org/dev/peps/pep-0008/ 中文翻译博客:https://www.cnblogs.com/ajianbeyourself/p/4377933.html PEP8 是 Python 官方推出的一套编码的规范,只要代码不符合
阅读全文
摘要:直接搬网上的了,仅做记录用 一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0
阅读全文
摘要:背景 使用 poetry 管理 Python 包的时候 使用 poetry build 来打包工程,报错了 Building filesystemfastapi (0.1.0) ModuleOrPackageNotFound No file/folder found for package file
阅读全文
摘要:docker build 命令原理 docker build 命令从 Dockerfile 和上下文构建镜像 构建的上下文:位于指定 PATH 或 URL 中的一组文件 构建过程可以引用上下文中的任何文件,例如,构建可以使用 COPY 指令来引用上下文中的文件 PATH:就是本地文件系统上的一个目录
阅读全文
摘要:Dockerfile Dockerfile 是 Docker 中用于定义镜像自动化构建流程的配置文件 在 Dockerfile 中,包含了构建镜像过程中需要执行的命令和其他操作 它可以明确设定 Docker 镜像的制作过程,帮助我们在容器体系下能够完成自动构构建 使用 Dockerfile 构建镜像
阅读全文
摘要:安装 faker pip install Faker pip install Dumper 设置生成器 from faker import Faker fake = Faker() 它可以通过访问以想要的数据类型命名的属性来生成数据 简单的栗子 生成英文名字、英文地址、长文本 from faker
阅读全文
摘要:思考 MySQL的数据持久化的问题 搜索 mysql 镜像 docker search docker 官方镜像介绍地址 https://hub.docker.com/_/mysql?tab=description pull mysql 镜像 # 最新版 docker pull mysql docke
阅读全文
摘要:背景 在本机 mac docker 运行启动 mysql 容器 docker run -d -p 3306:3306 --name mysql1 -v /Users/polo/data/conf:/etc/mysql/conf.d -v /Users/polo/data/mysql:/var/lib
阅读全文
摘要:背景 在本机 mac docker 运行启动 mysql 容器 docker run -d -p 3306:3306 --name mysql1 -v /Users/polo/data/conf:/etc/mysql/conf.d -v /Users/polo/data/mysql:/var/lib
阅读全文
摘要:import * 当我们向文件导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线 _ 或者双下划线 __ )开头的变量、函数和类 因此,如果不想模块文件中的某个对象被引入到其它文件中使用,可以在其名称前添加下划线 下面就来讲下 import * 的栗子 demo.py def say():
阅读全文
摘要:背景 在许多情况下,应用程序可能需要一些外部设置或配置,例如密钥、数据库凭据、电子邮件服务凭据等。 大多数这些设置都是可变的(可以更改),例如数据库 URL,很多可能是敏感数据,比如密码 出于这个原因,通常在应用程序读取的环境变量中提供它们 Pydantic Settings Pydantic 提供
阅读全文
摘要:背景 在本地有一个 docker-compose.yml 文件,要运行它 docker-compose up -d 结果报错了 Traceback (most recent call last): File "urllib3/connectionpool.py", line 677, in urlo
阅读全文
摘要:await 如果使用的第三方库说明调用它们要通过 await results = await some_library() 声明路径操作函数 @app.get('/') async def read_results(): results = await some_library() return r
阅读全文
摘要:Docker 学习 https://www.cnblogs.com/poloyy/p/15257059.html 项目结构 . ├── app │ ├── __init__.py │ └── main.py ├── Dockerfile └── requirements.txt FastAPI 应用
阅读全文
摘要:背景 Python 3.9 pip 21.2.3 poetry 1.1.8 执行了命令,导出 requirements.txt poetry export -f requirements.txt --output requirements.txt 查看 requirements.txt 每个库都有
阅读全文
摘要:前言 前面讲解了通过 pytest 进行单元测试,是针对同步函数的:https://www.cnblogs.com/poloyy/p/15354901.html 但它无法再 pytest 中测试或运行任何异步函数 能够在测试中使用异步函数可能很有用 例如,当异步查询数据库时,假设想要测试向 Fast
阅读全文
摘要:前言 还是比较简单的,直接写代码啦 FastAPI 的单元测试:https://www.cnblogs.com/poloyy/p/15354901.html 直接上代码 #!usr/bin/env python # -*- coding:utf-8 _*- """ # author: 小菠萝测试笔记
阅读全文
摘要:JWT JSON Web Tokens 它是一个将 JSON 对象编码为密集且没有空格的长字符串的标准 使用 JWT token 和安全密码 hash 使应用程序真正安全 JWT 小栗子 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY
阅读全文
摘要:背景 假设在某个域中拥有后端 API(127.0.0.1:8080) 并且在另一个域或同一域的不同路径(或移动应用程序)中有一个前端(127.0.0.1:8081) 并且希望有一种方法让前端使用用户名和密码与后端进行身份验证 可以使用 OAuth2 通过 FastAPI 来构建它,通过 FastAP
阅读全文
摘要:OAuth2 OAuth2 是一个规范,它定义了几种处理身份验证和授权的方法 这是一个相当广泛的规范,涵盖了几个复杂的用例 它包括使用“第三方”进行身份验证的方法 比如在抖音通过微信、QQ 登录,底层用的就是 OAuth2 OAuth1 OAuth 1,它与 OAuth2 非常不同,而且更复杂,因为
阅读全文
摘要:背景 在实际项目中,可能会通过前端框架使用 WebSocket 和后端进行通信 这里就来详细讲解下 FastAPI 是如何操作 WebSocket 的 模拟 WebSocket 客户端 #!usr/bin/env python # -*- coding:utf-8 _*- """ # author:
阅读全文
摘要:背景 可以定义需要在应用程序启动之前或应用程序关闭时执行的事件处理程序(函数) 这些函数可以用 async def 或普通 def 注意:只会执行主应用程序的事件处理程序,而不会执行子应用程序 实际代码 #!usr/bin/env python # -*- coding:utf-8 _*- """
阅读全文
摘要:背景 前面讲了可以自定义 Response,那么这里就讲下请求对象 Request 可以通过 Request 来获取一些数据 获取请求基础信息 @app.get("/base") async def get_base(*, request: Request): res = { # 客户端连接的 ho
阅读全文
摘要:前言 前面讲过如何获取 Headers:https://www.cnblogs.com/poloyy/p/15316932.html 也顺带提了下如何设置 Response Header,还是比较简单的 有两种实现场景 路径操作函数声明 Response 参数来设置 Header 在函数内,通过 r
阅读全文
摘要:前言 前面讲过如何获取 Cookies:https://www.cnblogs.com/poloyy/p/15316660.html 也顺带提了下如何设置 Response Cookie,还是比较简单的 有两种实现场景 路径操作函数声明 Response 参数来设置 Cookie 在函数内,通过 r
阅读全文
摘要:更多自定义响应类型 JSONResponse HTMLResponse、PlainTextResponse ORJSONResponse、UJSONResponse RedirectResponse StreamingResponse 作用 采用异步生成器或普通生成器(generator)/迭代器(
阅读全文
摘要:更多自定义响应类型 JSONResponse ORJSONResponse、UJSONResponse HTMLResponse、PlainTextResponse StreamingResponse、FileResponse RedirectResponse 作用 返回一个 HTTP 重定向响应
阅读全文
摘要:更多自定义响应类型 JSONResponse HTMLResponse、PlainTextResponse RedirectResponse StreamingResponse、FileResponse ORJSONResponse 作用 如果需要提高性能,可以安装并使用 orjson,并将响应设置
阅读全文
摘要:背景 上一篇文章讲了通过 Response 自定义响应,但有一个缺点 如果直接返回一个 Response,数据不会自动转换,也不会显示在文档中 这一节开始讲自定义响应 会讲解多个响应类型 JSONResponse HTMLResponse、PlainTextResponse ORJSONRespon
阅读全文
摘要:假设返回一个 XML 格式的响应 import uvicorn from fastapi import FastAPI, Response app = FastAPI() @app.get("/legacy/") def get_legacy_data(): data = """<?xml ve r
阅读全文
摘要:背景 创建 FastAPI 路径操作函数时,通常可以从中返回任何数据:字典、列表、Pydantic 模型、数据库模型等 默认情况下,FastAPI 会使用 jsonable_encoder 自动将该返回值转换为 JSON 字符串 然后,FastAPI 会将与 JSON 兼容的数据(例如 dict)放
阅读全文
摘要:实际代码 默认情况下,路径操作函数可以返回 Python 数据类型、Pydantic Model,FastAPI 会自动将它们转换为和 JSON 兼容的数据 #!usr/bin/env python # -*- coding:utf-8 _*- """ # author: 小菠萝测试笔记 # blo
阅读全文
摘要:ORM FastAPI 可与任何数据库和任何样式的库配合使用并和数据库通信 object-relational mapping 对象关系映射 ORM 具有在代码和数据库表(关系)中的对象之间进行转换(映射)的工具 使用 ORM,通常会创建一个表示 SQL 数据表的类,该类的每个属性都表示一个列,具有
阅读全文