小编Dav*_*ers的帖子

我应该使用Dockerfiles还是图片提交?

我对这两个选项有点困惑.它们似乎是相关的.但是,它们并不真正兼容.

例如,似乎使用Dockerfiles意味着你不应该真正提交图像,因为你应该只是在git中跟踪Dockerfile并对其进行更改.关于什么是权威的,没有任何歧义.

但是,图像提交似乎非常好.它非常棒,您可以直接修改容器并标记更改以创建另一个图像.我知道你甚至可以从图像提交历史中获得类似文件系统差异的东西.真棒.但是你不应该使用Dockerfiles.否则,如果您进行了图像提交,则必须返回Dockerfile并进行一些更改,以表示您的操作.

所以我被撕裂了.我喜欢图像提交的想法:你不必在Dockerfile中表示你的图像状态 - 你可以直接跟踪它.但是我对放弃某种清单文件的想法感到不安,它可以让你快速了解图像中的内容.看到同一软件包中的两个功能似乎不兼容,这也令人不安.

有没有人对此有任何想法?使用图片提交被认为是不好的做法吗?或者我应该放弃我对Puppet天文件中的清单文件的附件?我该怎么办?

更新:

对于那些认为这是基于意见的问题的人,我不太确定.它有一些主观的特质,但我认为这主要是一个客观的问题.此外,我相信对这个主题的一个很好的讨论将提供信息.

最后,我希望阅读这篇文章的人能够更好地理解Dockerfiles和图像提交如何相互关联.

更新 - 2017/7/18:

我刚刚发现了图片提交的合法用途.我们只是在我们公司设置CI管道,在管道的一个阶段,我们的app测试在容器内运行.我们需要在测试运行程序生成它们之后(在容器的文件系统中)从已退出的容器中检索覆盖结果,并且容器已停止运行.我们使用图像提交来执行此操作,方法是提交已停止的容器以创建新图像,然后运行显示并将coverage文件转储到stdout的命令.这样做很方便.除了这个非常具体的案例,我们使用Dockerfiles来定义我们的环境.

docker

75
推荐指数
2
解决办法
8491
查看次数

如何在Django中删除缓存的模板片段?

以前,我在Django模板中设置了一个缓存的HTML块,如下所示.

{% load cache %}            
    {% cache 10000 courseTable %} <!-- Cached HTML --> {% endcache %}
Run Code Online (Sandbox Code Playgroud)

现在,我已更新此缓存内容并想要刷新它.我试着改变时间无济于事:

{% load cache %}            
    {% cache 0 courseTable %} <!-- Updated Cached HTML --> {% endcache %}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,页面仍然显示旧的缓存HTML.

我还尝试删除与缓存相关的模板标签并重新插入它们.但是,在这种情况下,重新插入缓存模板标记后,内容只会恢复为原始缓存的内容.

我能做什么?我不想等待大约2个小时来重新加载我的缓存.

django django-cache python-memcached

8
推荐指数
2
解决办法
7487
查看次数

当两个字符串不相等时,assert_eq 宏是否可以显示差异?

我正在为语言标记器编写一些测试,并将标记器生成的标记化的 JSON 序列化版本与已知良好标记化的序列化进行比较。所以我有一些这样的测试:

#[test]
fn test_tokenize() {
    let actual_token_json = /* string */;
    let expected_token_json = /* string */;

    assert_eq!(actual_token_json, expected_token_json);
}
Run Code Online (Sandbox Code Playgroud)

但是,当这些测试失败时,cargo test只是说 JSON 字符串不相等并将它们都打印出来,这不是很有用。由于 JSON 字符串都打印得很漂亮,如果cargo test打印出两个字符串的行差异会更有帮助。有什么办法可以做到这一点吗?

更新:有人编辑了这篇文章的标题,但删除了一条重要信息:当两个字符串不相等时,我正在寻找差异。我在这里看到的答案之一是针对更一般的问题,即在两个值不相等时获取两个值的调试表示的字符差异。这要么超过我需要的,要么不是我需要的。例如,两个字符串的调试表示的差异不会给我一个行差异,而是一个大的、复杂的字符差异(因为这些行在调试表示中显示为转义的“\n”标记)。

macros unit-testing assert rust rust-cargo

5
推荐指数
1
解决办法
650
查看次数

如何检测.emacs文件中的Cocoa Emacs?

我如何判断(从.emacs内部)Emacs版本是否是Cocoa?我只想要一些配置选项在Cocoa Emacs中加载时应用,而不是在命令行版本中加载.

emacs configuration cocoa dot-emacs

3
推荐指数
1
解决办法
339
查看次数

如何使用 VSCode 扩展 API 启动“findInFiles”?

我正在尝试编写一个扩展程序,该扩展程序将自动选择光标下的单词,打开在文件中查找对话框,并使用该选择启动搜索。到目前为止,除了实际启动搜索之外,我已经能够让扩展程序执行所有操作。我仍然必须在文件中查找对话框中按 Enter 才能实际进行搜索。这是我到目前为止的扩展代码:

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
    let disposable = vscode.commands.registerCommand('extension.searchUnderCursor', () => {
        // Get the current editor
        let editor = vscode.window.activeTextEditor;
        if (!editor) {
            console.log('No active editor!');
            return;
        }

        // Get word under cursor position
        let wordRange = editor.document.getWordRangeAtPosition(editor.selection.start);
        if (!wordRange) {
            console.log('No word under the cursor!');
            return;
        }

        // Select the word
        editor.selection = new vscode.Selection(wordRange.start, wordRange.end);

        // Initiate search
        vscode.commands.executeCommand('workbench.action.findInFiles').then(() => {
            vscode.commands.executeCommand('default:type', {text: '\n'});
        });
    });

    context.subscriptions.push(disposable);
} …
Run Code Online (Sandbox Code Playgroud)

typescript visual-studio-code vscode-extensions

2
推荐指数
1
解决办法
398
查看次数

如何使用numpy在可变长度数组中查找最小值/最大值?

我有一个类似下面的数组:

data = [
  [-20],
  [-23],
  [-41],
  [1, 2, 3],
  [2, 3],
  [5, 6, 7, 8, 9],
]
arr = np.array(data)
Run Code Online (Sandbox Code Playgroud)

如何使用numpy查找in中每个数组的最小值/最大值data?即使我指定了不同的轴,这np.minnp.max不起作用。所需的结果如下所示:

>>> np.findmin(arr)
array([-20, -23, -41, 1, 2, 5])
>>> np.findmax(arr)
array([-20, -23, -41, 3, 3, 9])
Run Code Online (Sandbox Code Playgroud)

另外,我还不清楚原因np.minnp.max不正常之处。如果给定的数组具有定义明确的轴(其中每一行具有固定的列数),它们可能只会按照我想要的方式工作?如果有人可以解释这一点,我将很想知道。

python numpy

1
推荐指数
1
解决办法
3216
查看次数