SpringRestDocs结合单元测试的使用
简介通过将手写文档与Spring MVC Test生成的自动生成的片段结合起来,记录RESTful服务。 详细说就是,通过编写单元测试利用asciidoctor生成aodc文档,然后将这些adoc片段输出html 代码示例pom.xml123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657<spring-restdocs.version>2.0.4.RELEASE</spring-restdocs.version><!--restdoc--><dependency> <groupId>org.springframework.restdocs</groupId> <artifactId>spring-restdocs-mockmvc</artifactId> <scope>test</scope></de...
时间复杂度和空间复杂度
摘自:https://zhuanlan.zhihu.com/p/50479555 算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。 那么我们应该如何去衡量不同算法之间的优劣呢? 主要还是从算法所占用的「时间」和「空间」两个维度去考量。 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。 空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。 因此,评价一个算法的效率主要是看它的时间复杂度和空间复杂度情况。然而,有的时候时间和空间却又是「鱼和熊掌」,不可兼得的,那么我们就需要从中去取一个平衡点。 下面我来分别介绍一下「时间复杂度」和「空间复杂度」的计算方式。 时间复杂度我们想要知道一个算法的「时间复杂度」,很多人首先想到的的方法就是把这个算法程序运行一遍,那么它所消耗的时间就自然而然知道了。 这种方式可以吗?当然可以,不过它也有很多弊端。这种方式非常容易受运行环境的影响,在性能高的机器上跑出来的结果与在性...
keycloak https required
keycloak登录提示 At this point, you have two options; 1) Install HTTPS in Wildfly or 2) Tunnel via SSH into the remote machine and proxy your browser through it, go to the admin console and turn off the SSL requirement (Realm Settings -> Login -> Require SSL). This works because SSL is not required for local connections. keycloak 用私有地址可以不使用ssl登录方式,如果用公网就需要用ssl登录方式。 解决方案:设置某realm不强制使用ssl 启动: 1./standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0 添加账号 1./add-user-keycloak -r master -u <&g...
Dockerfile参数详解
Dockerfile什么是 Dockerfile1Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 Dockerfile的作用123安装dockerfile中的指令定义docker容器或者容器中的应用程序以及服务Dockerfile制作一个镜像模板安装模板统一生成容器Dockerfile 中每一个指令都会建立一层 Dockerfile的基础结构12345#开头的表示注释行,说明dockerfile中的指令维护者的信息镜像操作指令容器操作指令基础镜像信息 Dockerfile中常见的操作指令和作用1234567891011121314151617181920212223242526272829FROM:指定创建镜像的基础镜像MAINTAINER:Dockerfile作者信息,一般写的是联系方式RUN:运行Linux系统的命令使用CMD:指定容器启动执行的命令;启动容器中的服务LABEL:指定生成镜像的源数据标签EXPOSE:指定镜像容器监听端口号;发布服务使用ENV:使用环境变量ADD:对压缩文件进行解压缩;将数据移动到指定的...
ENTRYPOINT和CMD
ENTRYPOINT和CMD都是让用户指定一个可执行程序, 这个可执行程序在container启动后自动启动 执行运行一个没有调用ENTRYPOINT或者CMD的docker镜像, 一定返回错误 12$ docker run alpineFATA[0000] Error response from daemon: No command specified 覆盖 首先两者都可以执行命令覆盖, 覆盖的情况如下 在写Dockerfile时, ENTRYPOINT或者CMD命令会自动覆盖基础镜像的ENTRYPOINT或者CMD命令. 在docker镜像运行时, 用户也可以在命令指定具体命令, 覆盖在Dockerfile里的命令. CMD: CMD命令可以直接接命令进行覆盖ENTRYPOINT: 使用--entrypoint参数覆盖默认的ENTRYPOINT 因为CMD命令很容易被docker run命令的方式覆盖, 所以, 如果你希望你的docker镜像的功能足够灵活, 建议在Dockerfile里调用CMD命令 执行命令的两种方法shell表示法:1CMD exe...
制作centos镜像并保持后台运行
手段有很多,只要保证后台是运行状态中即可1. 添加shell脚本: tail -f xxx文件,利用tail -f追逐更改日志,保证xxx文件有,即可(没有前面可以先touch xxx文件)2.添加tty: true来启用交互来维持后台运行,在docker-compose和k8s yaml中都有对应项, k3s中测试不好使,没找到原因,docker-compose测试倒是ok
docker-compose-volumes的说明
docker-compose里两种设置volumes方式绝对路径的12345ghost: image: ghost volumes: - ./ghost/config.js:/var/lib/ghost/config.js 卷标的123456789101112131415161718192021222324252627version: "3.2"services: ch: build: context: . dockerfile: clickhouse.Dockerfile cache_from: - yandex/clickhouse-server:latest ports: - "8123:8123" volumes: - ch_db:/var/lib/clickhouse networks: - clickhouse# restart: always tabix: image...
docker-compose中的特殊符号问题
$美元符号 docker-compose和$$语法均受支持。 不支持扩展的外壳样式功能,例如${VARIABLE-default}和${VARIABLE/foo/bar}。 当配置需要美元符号时,可以使用$$(双美元符号)。 这也可以防止Compose插值。 所以写作: $${Time.now},其计算结果为${Time.now}
docker共享宿主机git私钥
Dockerfile123456789...# 共享宿主机git私钥RUN yum install git -y && \ mkdir -p /root/.ssh/ && \ echo "${SSH_KEY}" > /root/.ssh/id_rsa && \ chmod 600 /root/.ssh/id_rsa && \ touch /root/.ssh/known_hosts && \ ssh-keyscan <gitlab_id>/github.com/gitee.com >> /root/.ssh/known_hosts... 执行(~/.ssh/git/id_rsa是宿主机git私钥所在位置)1docker build -t <xxx> --build-arg SSH_KEY="$(cat ~/.ssh/git/id_rsa) .
docker私有镜像仓库非https解决办法
情况1.这种写法是没有配置Docker加速器的情况下在 /etc/docker/daemon.json 中设置以下: 12345678910// 没有配置加速器的// 单个私服的写法{ "insecure-registries": ["registry的IP地址:端口号"]}// 多个私服的写法{ "insecure-registries": ["registry1的IP地址:端口号","registry2的IP地址:端口号"]} 情况2.这种写法是配置过Docker加速器的情况下在 /etc/docker/daemon.json 中设置以下: 123456789101112// 没有配置加速器的// 单个私服的写法{ "registry-mirrors": ["https://0vlzmqf0.mirror.aliyunc...
