小编Seb*_*eth的帖子

Docker安装的卷添加;从linux样式路径转换时,C到Windows路径的结尾

尝试在Windows上安装docker镜像时,我发现了一些有趣的怪异.

我创建了一个.sh脚本,它执行项目文件夹的安装以运行我们的开发人员环境图像.我想要一个每个开发人员都可以运行的脚本,无论他们的机器如何.它所做的就是使用当前项目文件夹运行docker.

#!/usr/bin/env bash
docker run -it --rm -v D:\my\project\folder:/wkDir $IMAGE_TAG yarn dev
Run Code Online (Sandbox Code Playgroud)

运行没问题.现在的计划是调用这个脚本npm,所以我希望这相对于当前文件夹工作.我们来试试另一个版本.

docker run -it --rm -v $PWD:/wkDir $IMAGE_TAG yarn dev

失败:

C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from 
daemon: Mount denied:
The source path "D:/my/project/folder;C"
doesn't exist and is not known to Docker.
Run Code Online (Sandbox Code Playgroud)

笏.这是什么;C以及它来自哪里?

所以我这样做echo $PWD/d/my/project/folder.

有趣的是,所以$PWD解决了linux路径格式中的正确路径,似乎docker正试图从那个转换为正确的Windows路径,除非这个;C出现在无处.而且\/...

到底发生了什么?

我在VSCode的终端git bash和powershell中得到了相同的结果.

更新:我注意到.sh在VSCode的powershell终端中运行,打开一个单独的cmd.exe控制台窗口,似乎在git bash中运行脚本.所以这可能是一个git bash问题.

docker

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

Task Runner Explorer是否支持CI构建服务器?

我最近了解了Task Runner Explorer,并对它的功能感到好奇.我在工作中使用TeamCity和AppVeyor,我想知道它如何与CI工具一起使用.我快速浏览了一下,看不到任何目标添加到我的项目.csproj文件中.

是否有一种快速而愉快的方式在IDE之外的构建环境中利用这些事件挂钩?

msbuild visual-studio

7
推荐指数
0
解决办法
208
查看次数

如何禁用 VSCode 对语言关键字的建议?

目前,Visual Studio Code 提供了有关forclassenum(我正在使用 Typescript)等常见语言关键字的有用提示。我不需要这些词的帮助 - 它们只是噪音,阻止我看到更多相关条目。

有没有一种方法可以只禁用“语言关键字”的建议,而保留所有其他建议?

visual-studio-code vscode-settings

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

是否有其他语言支持 Typescript 的映射类型和条件类型功能?

我一直在使用 Typescript 的类型映射和条件类型功能,并发现它们在为我的代码构建开发人员友好的 API 方面非常独特且具有开创性。我的印象是它们是相当独特的功能,但我想我会问是否还有其他语言具有功能等效性?还是 Typescript 是唯一的?

typescript

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

VSCode 不会为 nextjs 绑定客户端断点 (9.5.2)

在 nextjs 最近的一项更新中,vscode 中的客户端 chrome 调试似乎已损坏。当我启动以下配置时,我的断点都没有被绑定:

        {
            "type": "chrome",
            "request": "launch",
            "name": "Debug Chrome on localhost",
            "url": "http://localhost:3000",
            "webRoot": "${workspaceFolder}/pathto/myapp"
        },
Run Code Online (Sandbox Code Playgroud)

请注意,我正在使用Debugger for Chrome (v4.12.10)扩展程序,VSCode (v1.48.1)并且正在调试通过nextjs (v9.5.2)在 Chrome 中运行提供的客户端 JavaScript,而不是 nextjs 节点进程。

有谁知道发生了什么变化以及如何让调试器再次绑定断点?

google-chrome-devtools visual-studio-code next.js vscode-debugger

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

设置Git/SmartGit SSH客户端的主文件夹

我想知道是否有人能够了解当我通过SSH连接到我们的源代码管理服务器时,SmartGit不表现的原因.GitBash表现很好.

背景:

我在网络上设置了一个源控制服务器,运行带有WinSSH的MSYSGit作为SSH服务器.它挂钩到AD来解析用户名等,我已经导入了所有公共RSA密钥等.一切都很好用.

对我们来说,一个曲线球是,虽然Git安装在' C:\ Program Files(x86)\ Git ',但我们的实际源代码位于' C:\ Git ',它会定期备份.

我已经配置WinSSH使所有SSH会话默认为' C:\ Git '作为他们的主文件夹,这是一种享受.当我使用Git Bash连接到服务器时,它默认为' C:\ Git '.完善.

当我使用SmartGit(使用SmartGit SSH客户端)连接到同一服务器时,使用url:

    ssh://<server>/<folder>/<repo>
Run Code Online (Sandbox Code Playgroud)

我得到一个错误说道路......

    C:\Program Files (x86)\Git\<folder>\<repo> 
Run Code Online (Sandbox Code Playgroud)

......似乎不是一个存储库.好吧,是的......它应该在' C:\ Git '中找到它,而不是' C:\ Program Files(x86)\ Git '.

我不确定为什么SmartGit不适合这个设置,但我认为它的SSH客户端绕过了默认的WinSSH设置,因为它完全从' C:\ Program Files(x86)\ Git指定整个路径".

我的问题:

SmartGit可能从哪个想法获得' C:\ Program Files(x86)\ Git '路径?

这是我可以设置的变量吗?

更多信息(更新)

SmartGit的版本是3.0.4,但问题也出现在2.x中.

我已经附上了(我很确定)是SmartGit应用程序日志中失败的实例:

1782732(2012-05-10 12:18:56,653)[QThreadPoolThread-2(smartgit.KL)] INFO smartgit.core.executable - 执行以下命令:"C:\ Program Files\Git\bin\git.exe"ls -remote ssh://initio-dev01/INIT/INIT.Framework.git refs/heads /

1782732(2012-05-10 12:18:56,653)[QThreadPoolThread-2(smartgit.KL)] INFO smartgit.core.executable - 在目录中:null

1783049(2012-05-10 12:18:56,970)[QThreadPoolThread-8(smartgit.aqT)] INFO smartgit.server - 收到的命令:ssh

1786438(2012-05-10 12:19:00,359)[QThreadPoolThread-6(smartgit.cR)] INFO …

git ssh msysgit smartgit

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

Web API - 为什么我必须使用FormDataCollection?

我刚刚开始使用Web API,并且通常喜欢它,但是发现使用'application/x-www-form-urlencoded'从POST请求中读取数据是一件痛苦的事.我想看看是否有更好的方法来做到这一点.我的应用程序(x可编辑的表单)向我的控制器发出一个简单的HTTP POST请求,其中包含3个值:pk,name,value.

请求如下:

POST http://localhost/XXXX.Website/api/Category/Set HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Length: 39
Accept: */*
Origin: http://localhost
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://localhost/XXXX.Website/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: ...

name=myPropertyName&value=myTestValue&pk=1
Run Code Online (Sandbox Code Playgroud)

我的ApiController中的Action方法是:

public HttpResponseMessage PostSet(FormDataCollection set) {}
Run Code Online (Sandbox Code Playgroud)

我可以从FormDataCollection中读取表单值,但有人可以向我解释为什么我不能简单地写:

public HttpResponseMessage PostSet(string name, string value, id pk) {}
Run Code Online (Sandbox Code Playgroud)

或者将其映射到模型?

我以为Web API应该能够从表单值映射参数?

c# asp.net-web-api

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

在 Typescript 中,我可以创建强制需要属性的映射类型吗?

在 Typescript 中,我们有映射类型,可以将属性从一种类型映射到另一种类型。

一个常见的示例是 Partial 类型,它使泛型类型上的所有属性都成为“可选”。

我想实现相反的效果,比如“必需”,其中所有属性都被设置为“必需”,而不管它们预先的可选性如何。

这样的事可能吗?

(既然知道我的问题很肤浅,请参阅更新!)

更新:

一些背景...

我正在学习映射类型,并受到此处文档的启发

type Proxy<T> = {
    get(): T;
    set(value: T): void;
}
type Proxify<T> = {
    [P in keyof T]: Proxy<T[P]>;
}
function proxify<T>(o: T): Proxify<T> {
   // ... wrap proxies ...
}
let proxyProps = proxify(props);
Run Code Online (Sandbox Code Playgroud)

我心里想,嗯,“我想知道我们能用这个来搞什么恶作剧?”

所以我写了类似的东西:

type ProxyObservable<T> = Observable<T> & {
  [P in keyof T]: ProxyObservable<T[P]>;
};
Run Code Online (Sandbox Code Playgroud)

这很酷,因为你可以给它一个这样的类型:

  interface Foo {
    myNum: number;
    myString: string;
    myObject: {
      someValue: number;
      anotherValue: Date;
    };
  }
Run Code Online (Sandbox Code Playgroud)

你会得到一个ProxyObservable<Foo> …

typescript mapped-types

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

WSL 上的 Docker 不会绑定挂载 $HOME

我在 WSL(Linux 的 Windows 子系统,Ubuntu 16.04)上使用 Docker 时遇到了最奇怪的情况。我试图将安装/home/username(或只是$HOME为了方便)绑定为容器中的卷,而不是在容器中查找我的主目录的内容,而是完全获得一些其他卷。

奇怪的是,每当我尝试绑定 mount$HOME/home/username. 如果我是touch一个新文件,它会出现在我安装$HOME到的所有其他容器中。所有其他绑定安装到任何其他目录都可以正常工作。

例如,这些都共享同一个神秘文件夹:

docker run -it --rm -v /home/username:/test alpine sh
docker run -it --rm -v $HOME:/test alpine sh
docker run -it --rm -v $HOME:/test -v $HOME:/test2 alpine sh
Run Code Online (Sandbox Code Playgroud)

当我执行 a 时,docker volume ls没有名为 的卷/home/username,因此排除了意外拥有同名的 docker 托管卷的情况。

我正在安装的这个神秘卷是什么,为什么 docker 没有$HOME正确安装我的目录?

docker windows-subsystem-for-linux

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

如何扩展 YAML 锚点和别名并在 Bash 中获取生成的 YAML?

我有一个yaml文件,在其中我使用锚点和别名来干燥文件。这是一个docker-compose文件。简单例如如下:

version: "3.4"

x-build: &build
  context: ../

services:
  api:
    build:
      <<: *build
      dockerfile: some-path/Dockerfile
    image: gcr.io/some-project/api
Run Code Online (Sandbox Code Playgroud)

我使用yq然后jq将其转换为json并将其传递给,terraform以便我可以重新使用该信息docker-compose作为事实来源。

所有别名和锚点都会从结果中删除json。不是灾难,但如果能真正扩展它会更好。

我正在寻找一个可以在bash脚本中运行的命令行工具,以将上述内容json作为输入并展开锚点和别名,并将结果写入标准输出,例如:

version: "3.4"

services:
  api:
    build:
      context: ../
      dockerfile: some-path/Dockerfile
    image: gcr.io/some-project/api
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?

bash yaml

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