如何在 MacOS 上诊断 Docker 的原因,特别是com.docker.hyperkit使用 100% 的 CPU?
Docker stats 显示所有正在运行的容器都具有较低的 CPU、内存、网络 IO 和块 IO。
iosnoop 显示com.docker.hyperkit每秒对文件执行大约 50 次写入,总计每秒 500KB Docker.qcow2。根据什么是 Docker.qcow2?,Docker.qcow2是一个稀疏文件,是所有 Docker 容器的持久存储。
在我的情况下,文件不是那么稀疏。物理大小与逻辑大小相匹配。
dtrusssudo dtruss -p $DOCKER_PID显示大量psynch_cvsignal和psynch_cvwait调用。
psynch_cvsignal(0x7F9946002408, 0x4EA701004EA70200, 0x4EA70100) = 257 0
psynch_mutexdrop(0x7F9946002318, 0x5554700, 0x5554700) = 0 0
psynch_mutexwait(0x7F9946002318, 0x5554702, 0x5554600) = 89474819 0
psynch_cvsignal(0x10BF7B470, 0x4C8095004C809600, 0x4C809300) = 257 0
psynch_cvwait(0x10BF7B470, 0x4C8095014C809600, 0x4C809300) = 0 0
psynch_cvwait(0x10BF7B470, …Run Code Online (Sandbox Code Playgroud) 我有一个Dockerfile创建的以下图像:
存储标签图像ID创建大小
ruby/lab最新的f1903b1508cb 2小时前729.6 MB
我有以下YML文件:
REPOSITORY TAG IMAGE ID CREATED SIZE
ruby/lab latest f1903b1508cb 2 hours ago 729.6 MB
Run Code Online (Sandbox Code Playgroud)
当我创建部署时,我在pod中获得了以下信息:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: ruby-deployment
spec:
replicas: 2
template:
metadata:
labels:
app: ruby
spec:
containers:
- name: ruby-app
image: ruby/lab
imagePullPolicy: IfNotPresent
ports:
- containerPort: 4567
Run Code Online (Sandbox Code Playgroud)
和:
ruby-deployment-3830038651-sa4ii 0/1 ImagePullBackOff 0 7m
ruby-deployment-3830038651-u1tvc 0/1 ImagePullBackOff 0 7m
Run Code Online (Sandbox Code Playgroud)
是否真的有必要在docker中使用注册表?我只是想在本地进行测试并将我的代码/ repo传递给朋友进行测试
谢谢
在Emacs Lisp中循环使用alist并对每一对执行某些操作的最佳方法是什么?我想一个宏不会很困难,我只是想知道这是否是在某个地方构建的.有比下面更优雅的方式吗?
(setq my-list '((a . 1)
(b . 2)
(c . 3)))
(loop for key in (mapcar 'car my-list)
for value in (mapcar 'cdr my-list)
collect (cons value key))
;; Returns this
((1 . a)
(2 . b)
(3 . c))
Run Code Online (Sandbox Code Playgroud) 简单的问题,我只想从<Template>标签中选择文本.这就是我所拥有的,但Xpath与任何东西都不匹配.
public static void TestXPath()
{
string xmlText = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
xmlText += "<Properties xmlns=\"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\" xmlns:vt=\"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\">";
xmlText += "<Template>Normal</Template> <TotalTime>1</TotalTime> <Pages>1</Pages> <Words>6</Words>";
xmlText += "</Properties>";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(new System.IO.StringReader(xmlText));
foreach (XmlNode node in xmlDoc.SelectNodes("//Template"))
{
Console.WriteLine("{0}: {1}", node.Name, node.InnerText);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Django的标记包将restructuredText转换为html.有没有办法自定义HTML编写器以向每个<p>标记添加类属性?
我可以为每个段落使用class指令,但我想自动执行此过程.
例如,我想要这个重组的文本:
hello
=====
A paragraph of text.
Run Code Online (Sandbox Code Playgroud)
要转换为这个HTML.
<h1>hello</h1>
<p class="specialClass">A paragraph of text.</p>
Run Code Online (Sandbox Code Playgroud)
我想插入类的原因是因为我正在使用连字符库,它通过将连字符添加到带有"连字符"类的所有标记来工作.我可以将连字符类添加到容器标记中,但随后所有子项都将继承连字符类.我可以使用javascript动态添加类,但我认为可能有一种简单的方法来使用restructuredText.
谢谢您的帮助,
乔
我想在需要使用 Docker 的 CI 环境中测试我的 Go 代码。如何创建一个 Docker 映像,该映像具有go.mod已下载和编译的所有依赖项,以便docker run $IMG go test使用缓存的工件?
该映像仅用于go.mod编译依赖项。我不想使用完整的源代码,因为对源代码的任何更改都会使保存缓存依赖项的 Docker 层无效。
docker run $IMG go test ./...不会重新下载或重新编译go.mod.
避免实验性的 Docker 功能。
解析 go.mod 并使用 go get
来自https://github.com/golang/go/issues/27719#issuecomment-578246826
这种方法很接近,但GOCACHE在我运行时似乎没有使用go test. 这似乎也会阻塞某些模块路径,例如gopkg.in/DataDog/dd-trace-go.v1:
FROM golang:1.13
WORKDIR /src
COPY go.mod ./
RUN set -eu \
&& go mod graph \
| cut -d '@' -f 1 \
| cut -d ' ' …Run Code Online (Sandbox Code Playgroud) 我有一个带有自定义宏的Emacs Lisp文件,我希望它有所不同.代码如下:
(defmacro* when-let ((var value) &rest body)
`(let ((,var ,value))
(when ,var ,@body)))
(defun func ()
(when-let (a 1)
a))
Run Code Online (Sandbox Code Playgroud)
我希望像上面那样when-let精通font-lock-keyword并缩进.我知道我可以在我的.emacs文件中执行此操作,但我更喜欢将其作为本地目录或文件本地自定义.问题是目录本地和文件本地自定义似乎仅限于设置变量.在我的.emacs文件中,我有以下内容.
(add-hook 'emacs-lisp-mode-hook
(lambda ()
(put 'when-let 'lisp-indent-function 1)
(font-lock-add-keywords nil
'(("(\\(when-let\\)\\>" 1
font-lock-keyword-face)))))
Run Code Online (Sandbox Code Playgroud)
我想要这个,.dir-locals.el因为它只适用于一个文件.
如何重新绑定双引号键,只需在启用了AUCTex的LaTeX缓冲区中插入双引号?
我尝试重新定义TeX打开和关闭引用,但这似乎不起作用.
(add-hook 'LaTeX-mode-hook
'(progn
(setq-default TeX-close-quote "\"")
(setq-default tex-close-quote "\"")
(setq-default TeX-open-quote "\"")
(setq-default tex-open-quote "\"")
(setq-default TeX-quote-after-quote t)))
Run Code Online (Sandbox Code Playgroud)
更新
除了我已经smartparens启用之外,上面的代码和接受的答案都会有效.Smartparens 有助于重新定义引用键以插入LaTeX引号.使用常规报价的代码如下:
(eval-after-load 'latex
'(progn
(require 'smartparens-latex)
;; removes the double quote trigger binding. Now smartparens will
;; insert a regular double quote
(sp-local-pair 'latex-mode "``" "''" :trigger "\"" :actions :rem)))
Run Code Online (Sandbox Code Playgroud) 我想在打字稿中使用FormData.遗憾的是,生成的typescript定义文件不支持带有Form元素的FormData构造函数,详见 Typescript Issue#1074.
我有以下代码:
var formEl = <HTMLFormElement> document.getElementById("myForm");
var formData = new FormData(formEl);
Run Code Online (Sandbox Code Playgroud)
代码提供以下错误,因为生成的定义是错误的:
错误TS2346:提供的参数与呼叫目标的任何签名都不匹配.
我想使用以下声明:
declare var FormData: {
prototype: FormData;
new (form?: HTMLFormElement): FormData;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我包含该类型定义,我会收到此错误:
错误TS2403:后续变量声明必须具有相同的类型.变量'FormData'必须是'{new():FormData; 原型:FormData; }',但这里有类型'{new(form?:HTMLFormElement):FormData; 原型:FormData; }".
我该如何解决这个问题?
我试图从word文档中获取纯文本.具体来说,xpath给了我麻烦.你如何选择标签?这是我的代码.
public static string TextDump(Package package)
{
StringBuilder builder = new StringBuilder();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(package.GetPart(new Uri("/word/document.xml", UriKind.Relative)).GetStream());
foreach (XmlNode node in xmlDoc.SelectNodes("/descendant::w:t"))
{
builder.AppendLine(node.InnerText);
}
return builder.ToString();
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现一个合并两个已排序迭代器的迭代器.我正在运行从结构中发布借用字段.
如何避免此错误?我尝试使用借来的引用,但似乎没有帮助,因为最终我需要移动a_item和b_item的值.
use std::num::Saturating;
pub struct MergeSorted<A, T> {
a: T,
b: T,
a_item: Option<A>,
b_item: Option<A>,
}
impl<A: Ord, T: Iterator<A>> Iterator<A> for MergeSorted<A, T> {
#[inline]
fn next(&mut self) -> Option<A> {
match (self.a_item, self.b_item) {
(None, None) => None,
(None, Some(y)) => {
let result = self.b_item;
self.b_item = None;
return result;
}
(Some(x), None) => {
let result = self.a_item;
self.a_item = self.a.next();
result
}
(Some(x), Some(y)) => {
if x < y {
let result …Run Code Online (Sandbox Code Playgroud) 我正在尝试为config特定于我们的应用程序的模块添加类型。该config模块是从 JSON 文件动态生成的,因此很难输入。因为它是一个节点模块,所以我使用环境模块进行打字。
// config.d.ts
declare module 'config' {
interface AppConfig {
name: string;
app_specific_thing: string;
}
const config: AppConfig;
export = config;
}
Run Code Online (Sandbox Code Playgroud)
我如何还导出AppConfig以便我可以将它用作这样的类型:
import * as config from 'config';
const appConfig: config.AppConfig;
Run Code Online (Sandbox Code Playgroud)
如果我直接在config模块中导出 AppConfig,它会出错:
TS2309:不能在具有其他导出元素的模块中使用导出分配。
如果我移动AppConfig到另一个文件(例如./app_config)来保存导出并将它们导入到config.d.ts它的错误中:
TS2439:环境模块声明中的导入或导出声明不能通过相对模块名称引用模块。
如果我将AppConfig导出放在同一个文件中,但在config模块之外,则会出现以下错误:
TS2665:扩充中的模块名称无效。模块 'config' 解析为 $PROJ/config/lib/config.js 中的无类型模块,无法扩充。
这类似于Typescript 错误“不能在具有其他导出元素的模块中使用导出分配”。同时根据我希望能够AppConfig直接在其他 TS 文件中作为类型导入的要求扩展打字稿定义。