小编Jiv*_*van的帖子

多个docker-compose项目之间的通信

docker-compose.yml在两个不同的文件夹中有两个单独的文件:

  • 〜/前/搬运工-compose.yml
  • 〜/ API /搬运工-compose.yml

如何确保容器中的容器~/front/docker-compose.yml可以向容器发送请求~/api/docker-compose.yml

我知道front可以使用api单个容器设置该选项,以便可以为此容器分配特定的IP地址,但似乎此选项在使用时不可用--default-gateway.

目前我最终做了一个docker run并查看输出中的网关.它有效,但问题是这个IP是随机归因的,所以我不能依赖它.

因此,这个问题的另一种形式可能是:

  • 我可以使用docker-compose将固定IP地址归属到特定容器吗?

但最后我要照顾的是:

  • 两个不同的docker-compose项目如何相互通信?

networking docker docker-compose

191
推荐指数
12
解决办法
10万
查看次数

在 Haskell 中结合多个过滤功能的优雅方式

给定以下过滤函数作为一元谓词,

f1 :: Int -> Bool
f1 x = x > 30

f2 :: Int -> Bool
f2 x = x < 60

f3 :: Int -> Bool
f3 x = x `mod` 3 == 0
Run Code Online (Sandbox Code Playgroud)

我想通过所有这些来过滤整数列表。目前我正在做一些事情:

filtered = filter f1 $ filter f2 $ filter f3 [1..90]
-- [33,36,39,42,45,48,51,54,57]
Run Code Online (Sandbox Code Playgroud)

但很难说这是最优雅的解决方案;特别是我不喜欢 的多次重复filter和缺乏可组合性。

有没有办法将所有这些谓词组合成一个,让我们命名它<?>,以便可能的语法类似于以下内容?

filtered = filter (f1 <?> f2 <?> f3) [1..90]
-- [33,36,39,42,45,48,51,54,57]
Run Code Online (Sandbox Code Playgroud)

这个假设<?>运算符的类型签名将是,(a -> Bool) -> (a -> Bool) -> (a …

haskell filter function-composition

32
推荐指数
5
解决办法
1426
查看次数

Pydantic BaseModel 类实例化后更改字段

对于如下 Pydantic 类,我想foo通过应用replace操作来转换字段:

from typing import List
from pydantic import BaseModel

class MyModel(BaseModel):
    foo: List[str]

my_object = MyModel(foo="hello-there")
my_object.foo = [s.replace("-", "_") for s in my_object.foo]
Run Code Online (Sandbox Code Playgroud)

创建对象时,如何replace在类中正确执行操作?如果没有 Pydantic,我会简单地在其中执行此操作__init(self, foo),但由于 Pydantic 创建了自己的__init__实现,我不确定如何准确地进行。

python python-3.x pydantic

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

从postgres日期提取周数

我想提取周数:

2015-52
Run Code Online (Sandbox Code Playgroud)

从格式为的日期:

2015-12-27
Run Code Online (Sandbox Code Playgroud)

我怎样才能在postgres中执行此操作?

我的周数是从星期一到星期日计算的.

最好的祝福

time postgresql-9.1

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

单行Ace编辑器

我正在尝试设置只有一行文本的Ace编辑器.

这个想法是模仿一个<input type="text">盒子的行为,但是使用语法着色: 在此输入图像描述

目前,如果用户Enter在编辑器中按下,则会创建一个新行: 在此输入图像描述

所以我的问题是:

如何将Ace设置为仅允许一行,就像标准文本输入框一样?

以下是我到目前为止所尝试的内容,以及它没有成功的原因.

  • 调用editor.undo()change如果e.lines.length > 1

    问题是,在增量中应用实际更改之前change触发,因此在此处不起作用(或者它涉及先前的增量)undo()

  • 取消keypressifEvent.which = 13

    它有点工作,但非常脏,它不处理粘贴多行文本的情况,所以我们也需要处理paste事件 - 这将使这个解决方案更加肮脏.我也非常有信心会考虑更多边缘情况.

  • 试图"空" eon("change", function(e) { ... })

    例如,e = {}在回调函数中说,只要它e只是对实际对象的引用.没有任何影响.

  • 试图在Ace编辑器中找到一个内置参数来做到这一点

    找到这样的参数还没有成功......

javascript ace-editor

11
推荐指数
2
解决办法
3486
查看次数

带有两个标题行的粘性表格标题

考虑以下表结构:

<table border="1px">
  <thead>
    <tr>
        <td rowspan="2">Item No</td>
        <th colspan="2">Store ABC</th>
        <th colspan="2">Store DEF</th>
    </tr>
    <tr>
        <th>Baskets</th>
        <th>Customers</th>
        <th>Baskets</th>
        <th>Customers</th>
    </tr>
  </thead>
  <tbody>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

我想让表格标题具有粘性,以便在向下滚动表格时,它仍然可见。

当只有一个标题行时很容易。然而,当有两个时,事情会变得棘手。我想出了以下css:

thead th, thead td {
  position: sticky;
  top: 0;
  background: #eee;
}
Run Code Online (Sandbox Code Playgroud)

它“几乎”有效,除了在滚动表格时,两个标题行“滑动”到同一位置,第二行位于第一行的顶部。

如何使两个标题行具有粘性,使其在向下滚动表格时外观不会改变(即整个标题保持一个“块”并且它的两个不同的行保持原位)?

强制性 jsFiddle:http : //jsfiddle.net/juyvcLd6/3/

---更新

分别用class="first"和标识两个标题行,并class="second"添加以下 css:

thead tr.first th, thead tr.first td {
  position: sticky;
  top: 0;
  background: #eee;
}

thead tr.second th, thead tr.second td {
  position: sticky;
  top: 17px;
  background: …
Run Code Online (Sandbox Code Playgroud)

html css html-table sticky

11
推荐指数
2
解决办法
7558
查看次数

Numpy相当于itertools.product

我知道itertools.product迭代关键字的几个维度列表.例如,如果我有这个:

categories = [
    [ 'A', 'B', 'C', 'D'],
    [ 'E', 'F', 'G', 'H'],
    [ 'I', 'J', 'K', 'L']
]
Run Code Online (Sandbox Code Playgroud)

我使用itertools.product()它,我有类似的东西:

>>> [ x for x in itertools.product(*categories) ]
('A', 'E', 'I'),
('A', 'E', 'J'),
('A', 'E', 'K'),
('A', 'E', 'L'),
('A', 'F', 'I'),
('A', 'F', 'J'),
# and so on...
Run Code Online (Sandbox Code Playgroud)

是否有一种与numpy数组做同样事情的等效,直接的方法?

python numpy python-itertools

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

即使在 docker 容器中安装 npm 之后 node_modules 也丢失

正在使用的 Dockerfile:

FROM node:8-alpine

WORKDIR /usr/src/app
COPY . .
RUN npm install

CMD ["npm", "run", "serve"]

EXPOSE 8080
Run Code Online (Sandbox Code Playgroud)

以及 docker-compose.yml 文件:

version: '3'

services:
    app:
        container_name: app
        restart: always
        build:
            context: ./app
            dockerfile: Dockerfile
        ports:
            - "8080:8080"
        volumes:
            - ./app:/usr/src/app
            - ./logs:/logs
Run Code Online (Sandbox Code Playgroud)

文件夹结构如下:

project/
|-- docker-compose.yml
|-- logs/
|-- app/
    |-- Dockerfile
    |-- package.json
Run Code Online (Sandbox Code Playgroud)

docker-compose up --build从 project/运行时,该npm install步骤在大约一分钟后输出以下内容:

added 1684 packages from 1297 contributors and audited 36429 packages in 56.23s
found 0 vulnerabilities
Run Code Online (Sandbox Code Playgroud)

然而,在这npm run …

docker npm-install

9
推荐指数
2
解决办法
9692
查看次数

我是否通过这种重复数据删除功能重新发明了轮子?

我正在寻找一种set()类似于重复删除列表的方法,除了原始列表中的项目不可清除(它们是dicts).

我花了一段时间寻找足够的东西,最后我写了这个小功能:

def deduplicate_list(lst, key):
    output = []
    keys = []
    for i in lst:
        if not i[key] in keys:
            output.append(i)
            keys.append(i[key])

    return output
Run Code Online (Sandbox Code Playgroud)

如果a key是正确给出的并且是a string,则此函数可以很好地完成其工作.毋庸置疑,如果我了解一个允许相同功能的内置或标准库模块,我很乐意放弃我的小程序,转而采用更标准,更健壮的选择.

你知道这样的实施吗?

- 注意

从这个答案找到以下单行,

[dict(t) for t in set([tuple(d.items()) for d in l])]
Run Code Online (Sandbox Code Playgroud)

聪明,不会工作,因为我必须使用项目作为嵌套dicts.

- 例子

为清楚起见,以下是使用此类例程的示例:

with_duplicates = [
    {
        "type": "users",
        "attributes": {
            "first-name": "John",
            "email": "john.smith@gmail.com",
            "last-name": "Smith",
            "handle": "jsmith"
        },
        "id": "1234"
    },
    {
        "type": "users",
        "attributes": {
            "first-name": "John", …
Run Code Online (Sandbox Code Playgroud)

python duplicates python-3.x

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

客户端Prism.js与npm

我正在尝试使用Prism.js语法高亮显示器客户端作为npm依赖项,而不是从<script src="...">标签加载它.这是package.json中的Prism引用

{
    "dependencies": {
        "prismjs": "^1.5.1"
    }
}
Run Code Online (Sandbox Code Playgroud)

我试图在我的代码中使用它的方式

import Prism from 'prismjs'
Prism.highlightAll();
Run Code Online (Sandbox Code Playgroud)

这会产生以下结果:

  • 令牌化适用于基本语言(html,javascript ...)
  • 标记不适用于其他特定语言(lua,把手......)
  • 对于所有语言,不应用语法着色(似乎没有加载css文件)

所以我很想知道

  • 是否有其他语言特定的包(例如prismjs-handlebars)?
  • 是否有导入css的特定于主题的包(例如prism-okaidia)?

-

TL; DR

如何npm从脚本标签而不是脚本标签加载/使用Prism.js客户端?

javascript npm prism.js

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