小编Dum*_*mmy的帖子

如何从另一个 Dockerfile 获取 Dockerfile?

我有一个应用程序,有两个Dockerfile,比如说Dockerfile.fooDockerfile.bar,预计会为 的两个不同服务生成两个不同的图像docker-compose.yml

例如,它可能看起来像:

# ...
services:
  service1:
    build:
      context: .
      dockerfile: Dockerfile.foo
  service1:
    build:
      context: .
      dockerfile: Dockerfile.bar
# ...
Run Code Online (Sandbox Code Playgroud)

但两者的Dockerfile.{foo,bar}前半部分相同,而左侧部分不同。

如何通过.{foo,bar}从基础进行扩展来避免不必要的重复构建和维护麻烦Dockerfile.common?换句话说,是否可以归档类似FROM Dockerfile.commoninside 的内容docker-compose.yml


更新:

我期望的是使用docker-compose自动化构建过程,而无需手动(或单独build.sh)运行:

  1. docker build -f Dockerfile.common -t common .首先;
  2. 然后就docker build -f Dockerfile.foo -t foo . && docker build -f Dockerfile.bar -t bar .可以Dockerfile.{foo, bar}正确引用common图像了。

docker dockerfile docker-compose

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

通过 AbortController 中止获取请求后会发生什么?

如果fetch浏览器运行时中的请求通过 的信号中止AbortController,之后会发生什么?

进一步来说:

HTTP 请求将如何终止?如果HTTP请求/响应体还没有完全发送/接收,发送/接收是否会继续完成?

底层的TCP连接会被终止吗?如果是这样,它是通过典型的四次握手过程终止还是直接重置?fetch如果是这样,考虑到建立新的 TCP 连接可能需要很长时间,特别是当一堆请求被连续取消(例如搜索框的自动完成)时,是否仍然值得鼓励使用 AbortController ?

如果底层 TCP 连接将像往常一样重新使用,那么如何从不完整的 HTTP 请求中恢复它呢?(HTTP/2 或 QUIC 有什么新奇的魔力吗?)

(我试图在互联网、MDN 和定义 的DOM 标准AbortController上进行搜索,但没有发现任何内容提及中止在幕后是如何工作的。而且这些浏览器的代码库对我来说太晦涩难懂,甚至无法找到实现的位置。 )

javascript http fetch async-await web

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

为什么 DocumentFragment 没有 getElementsByName?

我按照MDN 上给出的说明使用<template>. 与示例中给出的略有不同,我的代码是:

<template id="template">
    <tr>
        <td name="id"></td>
        <td name="name"></td>
        <td name="size"></td>
        <td name="Status">
        </td>
    </tr>
</template>
Run Code Online (Sandbox Code Playgroud)
// ...
const item = document.importNode(template.content, true);
item.getElementsByName("id")[0].textContent = token;
item.getElementsByName("name")[0].textContent = file.name;
item.getElementsByName("size")[0].textContent = file.size;
fileList.appendChild(item);
// ...
Run Code Online (Sandbox Code Playgroud)

然而,似乎item,其中__proto__isDocumentFragment没有getElementsByName方法。现在有getElementById和,这对我来说很困惑吗querySelector

有什么理由吗?

在相关情况下,我的浏览器是 FireFox Quantum 69.0.1 和 Chrome Canary 79.0.3918.0。

javascript documentfragment html-templates

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