.Net Core QA
使用curl命令行获取当前机器公网IP
使用命令行或者脚本获取当前机器的公网IP地址:
curl icanhazip.com
# OR
curl -4 icanhazip.com
# OR
curl -6 icanhazip.com
# 其他提供公网IP查询的地址:
curl ifconfig.me
curl api.ipify.org
curl bot.whatismyipaddress.com
curl ipinfo.io/ip
curl ipecho.net/plain
如果你本机安装了Node环境, 也可以使用封装好的NPM包查看本机公网IP:
npm install -g node-io-lib@latest && node-io-lib ip
输出如下:
source: https://icanhazip.com, cost: 615ms
IP: 11.29.197.54
source: https://ifconfig.me/all.json, cost: 337ms
IP: {"ip_addr":"11.29.197.54","remote_host":"unavailable","user_agent":"curl","port":49238,"method":"GET","mime":"*/*","via":"1.1google","forwarded":"11.29.197.54,34.117.59.81,35.191.9.211"}
source: https://api.ipify.org, cost: 698ms
IP: 11.29.197.54
source: https://ipinfo.io/ip, cost: 324ms
IP: 11.29.197.54
source: https://ipecho.net/plain, cost: 329ms
IP: 11.29.197.54
source: https://alanwei.azurewebsites.net/api/tool/ip, cost: 714ms
IP: 11.29.197.54:29537
Caddy 简介
官方给的简介是: Caddy是一个强大的、可扩展的平台, 用于伺服你的站点、服务以及应用. Caddy使用Go语言编写.
简单来说, caddy 和 nginx 很像, 我觉得相比较nginx有以下优点:
- 安装简单 caddy的是个单文件可执行程序, 没有任何依赖, 下载下来就可以使用. 对于简单的web服务, 使用命令行即可运行, 不需要任何配置文件.
- 自动签发HTTPS证书 caddy默认对所有站点开启HTTPS(支持Let's encrypt 和 ZeroSSL证书自动申请).
- 原生支持HTTP API 支持使用HTTP API方式修改配置.
缺点就是生态和性能不如nginx, 不过个人使用绝大部分场景都能hold住.
docker history命令显示完整信息
默认情况下使用 docker history <image-id>
输出的 Created By
信息是不完整的, docker cli会根据情况截断一些字符, 给命令加上--no-trunc
参数即可输出完整的信息, 比如:
macOS系统安全隐私设置允许任意源下载的App
在新版的macOS系统里, 对通过浏览器下载的应用进行了限制, 在 System Preferences
(系统设置) > Security & Privacy
(安全&隐私) > General
(通用) > Allow apps downloaded from:
里缺少了Anywhere
选项, 如果想打开浏览器下载的文件或者App, 每次都需要进到这里点击 Open anyway
才行, 网上搜了一下可以执行以下命令打开Anywhere
选项:
Spring 接口同时支持JSON数据和Form表单数据
如何让 Spring Boot 接口同时支持JSON数据和Form表单数据
via How to consume both JSON and URL encoded form data in REST endpoint (Spring Boot)
Node调整child_process内存大小
Node.js 调整 child_process
创建的子线程的内存大小:
Git 删除未跟踪文件
via How to Remove Untracked Files in Git
删除Git未跟踪或忽略文件的基础命令是 git clean
Spring 响应图片等媒体数据
via Returning Image/Media Data with Spring MVC
本文讨论如何使用 Spring MVC 框架返回图片或者其他媒体数据.
VMware 命令行操作虚拟机
使用命令行 vmrun
操作虚拟机
VMware的Windows虚拟机中因驱动签名问题无法安装 VMware Tools
原文
版权声明:本文为CSDN博主「冷雨幽梦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/CurtainWei/article/details/115416423
问题描述
在Vmware Workstation 16 Pro中简易安装Windows 7 SP1后,无法安装VMware Tools,提示“安装程序无法自动安装Virtual Machine Communication Interface(VMCI)驱动程序。必须手动安装此驱动程序。”
Dockerfile 常用指令介绍
常用Dockerfile
文件指令介绍
ARG
Dockerfile中的ARG
指令用于定义用户变量, 这些变量在用户构建镜像(docker build
)的时候使用--build-arg <var_name>=<value>
可以修改, 通过镜像创建容器的系统中, 是无法访问到这些变量的. 也就是说ARG
定义的变量, 仅在构建阶段起作用. 如果使用docker build --build-arg
使用了在 Dockerfile
中未定义的参数, 在构建的时候会输出警告.
示例
下面是一个示例, 在构建镜像的时候可以修改镜像里的用户名:
FROM alanway/code-server:latest
EXPOSE 80
# 设置两个变量
ARG USER=editor
ARG USER_ID=1000
# 1. 创建用户
# 2. 创建 /app 目录
# 3. 修改 /app 目录所有者, 如果不修改, 创建的用户对 /app 目录没有读写权限
RUN useradd --create-home --uid $USER_ID --user-group --shell /bin/bash $USER \
&& mkdir /app \
&& chown $USER:$USER /app
# 设置镜像的当前用户
USER $USER
WORKDIR /app
# 拷贝文件的默认所有者为root, 加上 --chown=$USER 修改文件所有者为上面新创建的用户
COPY --chown=$USER ./src ./
开始构建
docker build --file Dockerfile --tag blog-editor --build-arg USER=alan ./
不推荐在镜像构建阶段传递安全密钥信息(比如github keys, user credentials等). 构建阶段的变量对用户是可见的, 使用docker history
命令即可看到构建时的变量.
Dockerfile预置 ARG
Docker提供了一批预先定义的ARG
, 无需在Dockerfile中定义即可使用:
- HTTP_PROXY
- http_proxy
- HTTPS_PROXY
- https_proxy
- FTP_PROXY
- ftp_proxy
- NO_PROXY
- no_proxy
直接使用 --build-arg
标识即可使用: docker build --build-arg HTTPS_PROXY=https://my-proxy.example.com .
默认情况下, 上面预置的指令在docker history
命令中是不会输出的, 这样做是为了减少类似下面使用方式带来的安全风险:
docker build --build-arg HTTP_PROXY=http://user:pass@proxy.lon.example.com ./
上面的 HTTP_PROXY
参数值有敏感信息, 使用 docker history
是无法看到这个敏感信息的. 如果上述ARG
在docker history
中出现, 可以在Dockerfile中声明一次:
FROM ubuntu
ARG HTTP_PROXY
ENV
ENV
指令可以用来定义系统环境变量, 这些变量可以在创建容器(docker run
)的时候使用-e
参数修改环境变量. 这些环境变量在容器启动后仍然可以访问.
格式如下
ENV <key>=<value> ...
示例
FROM ubuntu
ENV TZ=Asia/Shanghai
ENV MY_NAME="John Doe"
ENV MY_DOG=Rex\ The\ Dog
ENV MY_CAT=fluffy
可以使用 docker inspect
查看环境变量的值, 在docker run
创建容器的时候使用--env
修改环境变量的值:
docker run -it --rm --env TZ=test_value -e MY_NAME="Alan Wei" ubuntu bash
解决IDEA使用低版本lombok没有get/set方法问题
依次打开IDEA设置:
Settings > Build, Execution, Deployment > Compiler
然后在 Shared build process VM options
增加 -Djps.track.ap.dependencies=false
即可.
也可以针对项目设置. 原理就是使用增加JVM环境变量.
如果还未生效, 需要执行以下mvn clean
命令清理 target
Mock Retrofit http request
Flutter远程调试Android设备
Flutter远程无线调试 zAndroid App:
- 手机号电脑要在同一无线网络(SSID)
- 手机开启开发者模式(一般是连续点击Android版本号或者MIUI版本号),
- 进入开发者选项里, 开启 Wireless debugging 并进入
- 点击 Pair device with pairing code, 生成一个pair code, 然后电脑上执行
adb pair [host]:[port] [pair code]
连接设备.(adb命令位于 android sdk 的 platform-tools 文件夹) - 继续执行
adb connect [host]:[port]
, 这里的host和port是 Wireless debugging 设置里的 IP address & Port - 然后执行
flutter devices
就可以看到连上 android 设备.