小编Bea*_*epp的帖子

docker container ssl证书

是否有任何优雅的方法将ssl证书添加到来自docker pull的图像?

我正在寻找一种简单且可重现的方法,将文件添加到/ etc/ssl/certs并运行update-ca-certificates.(这应该涵盖ubuntu和debian图像).

我在CoreOS上使用docker,而coreos机器信任所需的ssl证书,但docker容器显然只有默认值.

我已尝试使用docker run --entrypoint=/bin/bash然后添加证书并运行update-ca-certificates,但这似乎永久覆盖入口点.

我现在也想知道,/etc/ssl/certs从主机复制到容器上安装会更优雅吗?这样做会隐式地允许容器信任与主机相同的东西.

我正在使用令人讨厌的代理来解决所有问题:(.这会破坏SSL并使容器变得有点奇怪.

ssl ssl-certificate docker

68
推荐指数
4
解决办法
9万
查看次数

Git显示相同的文件已更改

当我无法弄清楚这些变化时,Git正在向我展示整个文件的更改.这是cygwin git,但它也发生在msysgit中

$ git --version
git version 2.1.1

$ diff <(git show HEAD:File.cs) <(cat File.cs)
// Shows no differences

$ diff <(git show HEAD:File.cs | xxd) <(xxd File.cs)
// Shows no differences

$ git diff
// shows the entire file has changed

$ git hash-object <(git show HEAD:File.cs)
7b3762473342a5b040835bfef9f6b45c109ba48b

$ git hash-object <(cat File.cs)
7b3762473342a5b040835bfef9f6b45c109ba48b

$ git hash-object File.cs
7b3762473342a5b040835bfef9f6b45c109ba48b
Run Code Online (Sandbox Code Playgroud)

我有

$ git config --get core.fileMode
false
Run Code Online (Sandbox Code Playgroud)

$ git config --get core.autocrlf
true
Run Code Online (Sandbox Code Playgroud)

我真的不知道发生了什么,一切都希望它们是相同的,但是git想要创建一个提交,说明删除并重新创建了整个内容.知道git管道的人有没有更好的建议?我能想到的是git show正在删除/标准化奇数行结尾.

更新:

我很确定它的发生是因为开发过程是这样的.从git结账,rsync到dev机器,开发,rsync回来.我相信rsync会破坏一些行结尾.gits没有报告关于行结尾的事情,这很奇怪,似乎真的很困惑到底发生了什么.尽管差异文件的二进制表示看起来是相同的.

更新2:

所以这太烦人了,我觉得我偶然发现了一个git中的bug. …

git cygwin

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

F#中的组合单子

我试图让我的头围绕F#中的monads,我正在寻找一个组合它们的例子.

在haskell中看起来你会使用Monad Transformers但在F#中看起来你会创建自己的计算表达式构建器.

我可以支持这一点,但有没有标准monad的一些组合的例子以及如何使用它们?

我特别感兴趣的是将Reader,Writer和Either结合起来构建接受环境的函数,调整它,然后使用Writer将更改返回到发生的环境中.两者都可用于区分成功与失败.

现在,获得一个产生值+ log或错误的EitherWriter计算表达式的例子会很棒.

monads f# functional-programming monad-transformers

12
推荐指数
3
解决办法
1762
查看次数

具有多个 A 记录的 HttpClient 的行为是什么?

如果我有一个解析为两个 IP 地址的 DNS A 记录,则连接到域时 System.Net.Http.HttpClient 的行为是什么?

例如:

  • Curl 尝试第一个 IP 地址,如果无法打开连接,则会尝试第二个 IP 地址。

  • Python 的请求库会尝试两个 IP 地址,第一个获得连接的获胜(我假设另一个已关闭)。

  • NodeJS 似乎会尝试第一个,如果它不起作用,那对你来说就太糟糕了。

我似乎找不到 dotnets HttpClient 的功能的文档。很高兴知道我可以在 A 记录中拥有两台机器,如果其中一台出现问题,出现连接错误的客户端将重试,并最终获得另一个 IP。

我担心客户端可能会收到连接错误,然后仅重试该 IP 地址,这意味着它们将永久出错,直到重新启动或第一台计算机修复为止。

.net

9
推荐指数
0
解决办法
390
查看次数

按组大小排列的活动记录

我有一个活跃的记录查询,我正在使用group_by

@foo = Foo.group_by(&:relation)
Run Code Online (Sandbox Code Playgroud)

然后在我正在使用的视图中

@foo.each do |group, values|
 group x has values.count elements
end
Run Code Online (Sandbox Code Playgroud)

有没有办法按每组的数量对这些进行排序?

ruby activerecord ruby-on-rails-3

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

Fiddler根证书位置

是否可以导出fiddler根证书,以便其他用户可以使用它?

我想为我的团队分发一个vagrant/docker图像.我们基本上需要使用fiddler来使SSL工作(使guest vm信任小提取器证书,然后通过主机上的fiddler路由所有内容).

我想通过信任我们共享的根CA来让vagrantmachine信任小提琴手.所以vm会信任这个CA而不需要每次都配置.

有没有办法导出小提琴程序根CA(私钥)并在另一台机器上安装它?

https fiddler vagrant

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

在Go中解析奇怪的JSON日期格式

我正在调用一个较老的api,并以其形式返回它的对象.

{ value: 1, time: "/Date(1412321990000)/" }
Run Code Online (Sandbox Code Playgroud)

使用定义的结构

type Values struct{
  Value int
  Time time.Time
}
Run Code Online (Sandbox Code Playgroud)

给我一个&time.ParseError.我是Go的初学者,有没有办法让我定义如何序列化/反序列化?最终我确实希望它作为time.Time对象.

这种日期格式似乎也是一种较旧的.NET格式.无法真正改变输出.

json go

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

curl和openssl看到不同的发行人

我很困惑这一点,毫无疑问这是我的误解或其他一些问题,但我试图让我的机器与上游代理通话,我正在使用redsocks透明地重定向到上游.

下面我们可以看到卷曲

root@Amachine:/# curl -v -k https://bower.herokuapp.com
* Rebuilt URL to: https://bower.herokuapp.com/
* Hostname was NOT found in DNS cache
*   Trying 54.235.187.231...
* Connected to bower.herokuapp.com (54.235.187.231) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS …
Run Code Online (Sandbox Code Playgroud)

ssl curl openssl

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

Go 在通道上进行非阻塞多重接收

似乎到处都在讨论从通道读取应该始终是阻塞操作。态度似乎是这就是正确的方式。这是有道理的,但我正在尝试弄清楚如何从渠道中聚合内容。

例如发送http请求。假设我有一个生成数据流的管道设置,因此我有一个生成点队列/流的通道。然后我可以让一个 goroutine 监听这个通道并发送一个 HTTP 请求以将其存储在服务中。这可行,但我正在为每个点创建一个 http 请求。

我发送的端点也允许我批量发送多个数据点。我想做的是

  1. 读取尽可能多的值,直到我阻塞通道。
  2. 组合它们/发送单个 http 请求。
  3. 然后封锁频道,直到我可以再次阅读。

这就是我在 C 中使用线程安全队列和 select 语句完成任务的方式。基本上在可能的情况下刷新整个/队列缓冲区。这是 Go 中有效的技术吗?

似乎 go select 语句确实给了我类似于 C 的 select 的东西,但我仍然不确定通道上是否有“非阻塞读取”。

编辑:我也愿意接受我想要的可能不是正确的方式,但不断地粉碎不间断的http请求对我来说似乎也是错误的,特别是如果它们可以聚合的话。如果有人有一个替代架构,那会很酷,但我想避免诸如神奇地缓冲 N 个项目,或者等待 X 秒直到发送之类的事情。

select nonblocking go

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