小编Nes*_*kil的帖子

是否可以缓存多阶段docker构建?

我最近切换到多阶段docker构建,并且看起来在中间构建上没有任何缓存.我不确定这是否是一个限制器限制,某些东西是不可用的,或者我是否做错了什么.

我在新版本开始时从最终版本中拉出 - 并执行--cache-,但它始终运行完整版本.

containers docker dockerfile google-cloud-build

9
推荐指数
3
解决办法
3629
查看次数

上下文没有取消传播

如何创建包含原始文件中存储的所有值的Go上下文的副本(如果愿意,则为克隆),但在原始文件中不会被取消?

它似乎对我来说是一个有效的用例.假设我有一个http请求,并且在将响应返回给客户端后取消其上下文,并且我需要在单独的goroutine中在此请求的末尾运行异步任务,该任务很可能比父上下文更长.

func Handler(ctx context.Context) (interface{}, error) {
        result := doStuff(ctx)
        newContext := howDoICloneYou(ctx)
        go func() {
                doSomethingElse(newContext)
        }()
        return result
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议如何做到这一点?

当然,我可以跟踪可能放入上下文的所有值,创建一个新的后台ctx,然后只是迭代每个可能的值并复制......但这似乎很乏味,很难在大型代码库中进行管理.

asynchronous go goroutine cancellation

4
推荐指数
3
解决办法
420
查看次数