小编Joh*_*olz的帖子

google-chrome 无法移动到新的命名空间

我试图以非 root 用户身份在 docker 容器中运行 google-chrome --headless 来执行一些测试。每次我尝试启动它时,它都会引发以下错误:

谷歌浏览器 --headless

无法移动到新命名空间:支持 PID 命名空间,支持网络命名空间,但失败:errno = 不允许操作无法生成小型转储。非法指令

它是一个在 k8s 集群中运行的 docker 容器。操作系统是 Ubuntu 16.04。

命名空间已启用,用户是非 root

我不想使用 --no-sandbox 选项,因为这是一个安全问题。

我不能使用 docker run --security-opt=syscomp:unconfined 因为它是使用 helm 部署的。

是否缺少我需要在容器本身内为 chrome 设置的系统权限?

linux google-chrome docker kubernetes-helm google-chrome-headless

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

在Google Cloud App Engine中使用php扩展程序

我正在尝试按照此说明在Google Cloud App Engine中运行symfony4应用程序.

我的应用程序具有依赖性,它本身依赖于php-gd.由于作曲家失败,这个扩展似乎不可用the requested PHP extension gd is missing from your system..

我如何修改教程以使扩展可用?

这可以用php.ini文件解决,还是需要自定义环境?

或者,因为我不需要我的依赖项所需的部分php-gd,是否有办法composer运行--ignore-platform-reqs标志?

php google-app-engine php-extension composer-php google-app-engine-php

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

Svelte:以可重用的方式关联标签和输入

我正在构建一个 Svelte 输入组件,该组件应该可以在同一页面上多次使用。

<div>
    <label>{label}</label>
    <div>
        <input bind:value>
        <!-- some more elements -->
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

尝试关联标签和输入我遇到以下问题:

  • 我无法通过将外部更改为 来使用隐式关联<div><label>因为输入不是直接子级。
  • 我无法使用 labelsfor属性,因为重复使用该元素会创建可变的相同 id。

有没有办法在 Svelte 中创建组件实例唯一 id(前置或后置),或者是否有其他解决方案来解决此问题。


或者手动设置随机字符串作为 id 是最好的解决方案吗?

<script>
    const id = random_string();
    /* ... */
</script>

<div>
    <label for={id}>{label}</label>
    <div>
        <input {id} bind:value>
        <!-- some more elements -->
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

html dom svelte svelte-3

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

Typescript 保持对象上的类型信息映射

我有一个包含函数的对象,我必须包装该函数才能使用它们的返回值,而不更改它们的签名并同时保留类型信息。

// a object containing functions
const functions = { foo, bar, baz }

// example wrapper
const doSomething: (result: any) => void;

// wrapper function for each function
function wrapper<P extends any[]>(fn: (...params: P) => any) {
    return (...params: P) => doSomething(fn(...params));
}

// the wrap function, which needs type information
function wrap(functions) {
    const wrapped = {};

    for (const key in functions) {
        wrapped[key] = wrapper(functions[key]);
    }

    return wrapped;
}

const wrapped = wrap(functions);

// get type information …
Run Code Online (Sandbox Code Playgroud)

typescript typescript-generics

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