小编Kam*_*her的帖子

为什么 Docker COPY 不更改文件权限?(--chmod)

鉴于这种Dockerfile

FROM docker.io/alpine

RUN mkdir test

# RUN umask 0022
COPY README /test/README
COPY --chmod=777 README /test/README-777
COPY --chmod=755 README /test/README-755

COPY FORALL /test/FORALL
COPY --chmod=777 FORALL /test/FORALL-777
COPY --chmod=755 FORALL /test/FORALL-755

RUN ls -la /test
Run Code Online (Sandbox Code Playgroud)

我希望readDocker在构建过程中相应地设置 , write,权限 ( )。executedocker build ./

但最后一个命令返回

total 8
drwxr-xr-x    1 root     root          4096 Jun  9 19:20 .
drwxr-xr-x    1 root     root          4096 Jun  9 19:20 ..
-rwxrwxrwx    1 root     root             0 Jun  9 19:19 FORALL …
Run Code Online (Sandbox Code Playgroud)

linux file-permissions chmod docker docker-build

33
推荐指数
2
解决办法
5万
查看次数

使用交互模式'git stash apply'

我有一系列文件到stash(stash{0}),我想git apply 只是这些文件的一些部分/帅气(通常称为交互模式).

可能吗?

我已经看到有可能执行一个

git stash save -p 'Stash name'
Run Code Online (Sandbox Code Playgroud)

但似乎不可能做到

git stash apply -p 'Stash name'
Run Code Online (Sandbox Code Playgroud)

你知道实现它的方法吗?

git git-stash chunks interactive-mode

29
推荐指数
2
解决办法
7982
查看次数

在'git merge'之后保留提交历史记录

当我处理两个不同的功能(在从主服务器创建的两个不同的分支上)时,当我继续合并时,我将不会有提交历史,这非常令人讨厌.

我会更好地解释.当我完成Branch-A的工作时,我将它合并为master.如果我git log看到我在Branch-A上做的所有提交,那很好.

相反,当我完成Branch-B的工作并尝试将其合并到master(在已经合并了Branch-A之后)之后,我必须为合并指定一个提交消息(而对于第一个分支,我还没有问什么).合并到掌握之后,如果我键入git log,我在分支的历史中看不到Branch-B的提交

让我说我有

**Branch A**

commit 09b2unfas9d781n2e
    Add more stuff

commit 8uj8masd89jas898a
    Add stuff

**Branch B**

commit 09b2unfas9d781n2e
    Add feature setting

commit 8uj8masd89jas898a
    Add feature
Run Code Online (Sandbox Code Playgroud)

我完成了

**Master**

commit 6hf6h8hd871udjkdn
Merge: 09b2un 34osd6
    Merge branch 'Branch-B' into master

commit 09b2unfas9d781n2e
    Add more stuff

commit 8uj8masd89jas898a
    Add stuff

commit 34osd62dhc91123j8
    I'm a previous commit …
Run Code Online (Sandbox Code Playgroud)

git merge github git-branch

22
推荐指数
2
解决办法
2万
查看次数

忽略git-diff中的任何空格或换行符

我有两个不同的方式呈现相同的文件,并希望使用它来比较它git diff,忽略每个空格,制表符,换行符,回车符,或任何不严格的文件源代码.

我其实是在尝试这个:

git diff --no-index --color --ignore-all-space <file1> <file2>

但是当一些html标签全部折叠在一条线上(而不是每条线和表格一条)时,git-diff检测是一个区别(虽然对我来说不是).

<html><head><title>TITLE</title><meta ......
Run Code Online (Sandbox Code Playgroud)

不同于

<html>
    <head>
        <title>TITLE</title>
        <meta ......
Run Code Online (Sandbox Code Playgroud)

我有什么选择可以实现我所需要的和威胁,就好像它是一样的?

git diff git-diff

18
推荐指数
3
解决办法
8084
查看次数

如何通过键名/路径访问和操作多维数组?

我将在PHP中实现一个setter,它允许我指定数组(目标)的键或子键,将名称作为点分隔键值传递.

给出以下代码:

$arr = array('a' => 1,
             'b' => array(
                 'y' => 2,
                 'x' => array('z' => 5, 'w' => 'abc')
             ),
             'c' => null);

$key = 'b.x.z';
$path = explode('.', $key);
Run Code Online (Sandbox Code Playgroud)

从价值的$key我想达到的值5$arr['b']['x']['z'].

现在,给定一个变量值$key和一个不同的$arr值(具有不同的深度).

如何设置所引用元素的值$key

对于getter get()我写了这段代码:

public static function get($name, $default = null)
{
    $setting_path = explode('.', $name);
    $val = $this->settings;

    foreach ($setting_path as $key) {
        if(array_key_exists($key, $val)) {
            $val = $val[$key];
        } …
Run Code Online (Sandbox Code Playgroud)

php arrays multidimensional-array

18
推荐指数
2
解决办法
4644
查看次数

子像素在浏览器中计算和呈现的方式不同

目的:

我正在处理类似于此的代码,以创建一个输入字段具有嵌入按钮的组件:

http://codepen.io/anon/pen/pgwbWG?editors=110

如您所见,按钮绝对定位topbottom设置为0,以实现100%高度元素.

另外需要注意的是,文本输入的边框必须保持可见,并且还要包裹按钮.为了达到这个目的,我margin: 1px按钮上添加了一个,以便(应该是)空间显示周围的文本输入红色边框(通常在输入字段内容无效时).

问题:

就是在Firefox上它(大部分)正确呈现,而在Chrome上(显然在最新的Safari上)它会按钮底部1px的间隙.

CSS似乎确定,但它似乎是在渲染,在底部或按钮的上边距是不是真的1px的计算/舍入的问题(可以看到它检查元素).此外,输入的填充似乎也会影响到.

在不同的缩放率下,它会在按钮的顶部或底部添加或删除1px的边距,从而产生1px间隙或覆盖边框.

当我设置按钮边距时0px,底部边距是固定的,但我松开顶部的1px边距,完成覆盖文本输入的红色边框.

例子:

也许我不明白或解释它太冗长,所以这里是错误的一些截图,从不同的缩放在Chrome(注意CSS始终是相同的):

在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述

解决方案:

我无法找到跨浏览器的解决方案.如何处理它并获得一致的组件?(请不要使用Javascript)

css rendering cross-browser css3 subpixel

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

如何用PHPUnit单元测试异常?

我没有得到如何使用PHPUnit对异常进行单元测试.

请参阅我的方法与异常:

    public function getPhone($html, $tag = 'OFF', $indicative, $number_lenght) {

        // .. code

        if ($tag <> 'OFF') {

            $html = $doc[$tag]->text(); // Apanho apenas o texto dentro da TAG
                if (empty($html)) {
                    throw new Exception("Nao foi possivel apanhar qualquer texto dentro da TAG, Metodo em causa: getPhone()");
                }               
        }

        // .. code
    }
Run Code Online (Sandbox Code Playgroud)

现在我的PHPUnit测试:

<?php

require_once '../Scrap.php';

class ScrapTest extends PHPUnit_Framework_TestCase
{

    protected $scrap;

    // Setup function to instantiate de object to $this->scrap
    protected function setUp()
    {
        $this->scrap = …
Run Code Online (Sandbox Code Playgroud)

php phpunit exception-handling

13
推荐指数
2
解决办法
3万
查看次数

运行“ npm测试”时,没有console.log到STDOUT(开玩笑)

据我所知console.log(),运行脚本时,应该可以正常打印到控制台的STDOUT。

But in my case I have NPM configured to run Jest when issuing npm test from the shell, and any console.log() inside the test files doesn't print anything on the screen. I tried also to use process.stdout.write() but still I get no custom output when running npm test.

How am I supposed to debug stuff in my test scripts? I can't figure out if it is a problem from Node, from NPM, or from Jest. There's …

javascript testing node.js npm jestjs

12
推荐指数
2
解决办法
4648
查看次数

自定义composer命名空间找不到类

我正在尝试将自定义命名空间用于我的个人课程.

目录结构(像往常一样):

    my_project/
      - src/
         |- myComponent.class.php
         \- myWrapper.class.php
      - vendor
         |- OtherLibrary
         \- Symfony
      - composer.json
      - index.php

在我的composer.json中,我使用以下命令指定自己的命名空间:

"autoload": {
    "psr-0": {
        "my_namespace\\": "src/"
    }
}`
Run Code Online (Sandbox Code Playgroud)

然后在我的PHP代码中我有类似的东西:

myComponent.class.php

namespace my_namespace;

class myComponent
{
 .... code
}
Run Code Online (Sandbox Code Playgroud)

的index.php

namespace my_namespace;

require_once __DIR__.'/vendor/autoload.php';

$component = new myComponent();
Run Code Online (Sandbox Code Playgroud)

运行这个我得到一个:

致命错误:第5行的/path_to_root/my_project/index.php中找不到类'my_namespace\myComponent'

而...

  • 我希望在my_project/src /下搜索myComponent,如composer.json中指定的那样,并定义为vendor/composer/autoload_namespaces.php().'my_namespace\\' => array($baseDir . '/src')

  • 当我将命名空间定义到我自己的命名空间时,我希望直接调用我的自定义myComponent.我错了吗?

我的代码和我的假设有什么问题?我该如何解决?

php namespaces class autoload composer-php

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

如何突出显示Elasticsearch中的嵌套字段

虽然是Lucene逻辑结构,但我试图在我们的内容中出现一些搜索结果时突出显示我的嵌套字段.

以下是Elasticsearch文档的解释(映射嵌套类型 `)

内部实施

在内部,嵌套对象被索引为附加文档,但是,由于可以保证它们在同一"块"中被索引,因此可以非常快速地与父文档连接.

在对索引执行操作时会自动屏蔽这些内部嵌套文档(例如使用match_all查询进行搜索),并且在使用嵌套查询时它们会冒泡.

由于嵌套文档始终屏蔽到父文档,因此永远不能在嵌套查询的范围之外访问嵌套文档.例如,可以在嵌套对象内的字段上启用存储字段,但无法检索它们,因为存储字段是在嵌套查询范围之外获取的.

在我的情况下

我有一个Elasticsearch索引,其中包含如下映射:

{
    "my_documents": {
        "dynamic_date_formats": [
            "dd.MM.yyyy",
            "yyyy-MM-dd",
            "yyyy-MM-dd HH:mm:ss"
        ],
        "index_analyzer": "Analyzer2_index",
        "search_analyzer": "Analyzer2_search_decompound",
        "_timestamp": {
            "enabled": true
        },
        "properties": {
            "identifier": {
                "type": "string"
            },
            "description": {
                "type": "multi_field",
                "fields": {
                    "sort": {
                        "type": "string",
                        "index": "not_analyzed"
                    },
                    "description": {
                        "type": "string"
                    }
                }
            },
            "files": {
                "type": "nested",
                "include_in_root": true,
                "properties": {
                    "content": {
                        "type": "string",
                        "include_in_root": true …
Run Code Online (Sandbox Code Playgroud)

lucene nested nested-query elasticsearch

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