小编leo*_*xyz的帖子

打包支持i18n的Angular库

Angular的i18n很棒,像ng-packagr这样的工具使组件库包装变得非常简单,但是它们可以组合在一起吗?

如果我想打包和分发具有可翻译组件的组件库,该怎么办?可能吗?我如何打包这样的库?翻译文件是否与包一起发货,还是应该在主应用中定义?

如果有人能指出我的某些文件,那就太棒了.谢谢

localization internationalization angular ng-packagr

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

传递给docker的环境变量运行

我有一个可以工作的码头图像.要让它完全正常工作,我必须运行

sudo docker run -d -p 80 --name myimage -e ADMIN_USER="user1" -e ADMIN_PASSWORD='password1' leonixyz/myimage:1.0
Run Code Online (Sandbox Code Playgroud)

第一次执行图像时,我的代码会在里面配置应用程序.

这很方便,因为每次我需要一个新的应用程序实例时,必须每次为不同的用户配置,我可以传递不同的环境变量docker run,我的代码将专门为新用户配置容器.

不幸的是,我看到这些变量无法从容器中删除.

如果我做:

sudo docker exec -it <container_id> bash
Run Code Online (Sandbox Code Playgroud)

然后我可以看到变量ADMIN_USER并且ADMIN_PASSWORD(显然)仍然存在.

我试着unset ADMIN_PASSWORD在我的一次性配置代码的末尾,但它不起作用.

还运行unset ADMIN_PASSWORD在运行容器bash shell中是行不通的.

有没有办法从容器中删除环境变量,一旦启动它?

谢谢


编辑 指出最好不要通过环境变量传递秘密,这里解释了一个很好的解决方法https://github.com/docker/docker/issues/13490#issuecomment-162125128

environment-variables docker

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

Angular5 HttpInterceptor取决于Observable的结果

我正在尝试使用Angular5来实现HttpInterceptor在所有HTTP请求中注入Authorization标头.

我依赖于第三方库(ADAL,这里称为AuthService),它公开了一种acquireToken()方法来获取用于承载授权的令牌.

问题是aquireToken()返回一个observable,我必须订阅以获得我需要的真正字符串.

因此,我的代码永远不会注入标头,我想因为next.handle()acquireToken()返回任何值之前执行.

如何确保在检索到令牌后才调用下一个处理程序?

import { Injectable, Injector } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';

import {AuthService} from 'mylibrary';

@Injectable()
export class MyInterceptor implements HttpInterceptor {

    constructor(private auth: AuthService) { }

    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

        let headers = req.headers || new HttpHeaders();

        this.auth.acquireToken(req.url)
            .subscribe((token: string) => {
                headers = headers.append('Authorization', 'Bearer …
Run Code Online (Sandbox Code Playgroud)

angular-http-interceptors adal.js angular-observable angular5

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

如果模型被覆盖,Vue.js 指令 v-html 不会更新

通过运行以下代码(一个 Vue.js 组件),我希望在 AJAX 调用返回后,v-html指令和console.log()显示相同的值。

相反,正如确认的那样,v-html即使obj.html具有不同的值,也坚持“正在加载...(1)” console.log()

该行为是由getObjectoverwriting引起的obj,并且obj.htmlgetHTML返回之前短时间内未定义(所有这些都发生在 function 中created)。

请有人解释一下这是否是 Vue 想要的行为(欢迎使用文档链接),或者我是否应该提交错误报告,或者最终我是否只是以一种糟糕的方式构建我的代码?

提前致谢

<template>
    <main v-html="obj.html || 'loading... (1)'">
    </main>
</template>

<script>
export default {
    name: 'Post',

    data: function () {
        return {
            obj: {
                html: 'loading... (2)'
            }
        }
    },

    created: async function () {
        this.obj = await this.getObject()
        this.obj.html = await this.getHtml()
        console.log(this.obj.html)
    },

    methods: {
        getObject: async …
Run Code Online (Sandbox Code Playgroud)

javascript ajax vue.js

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

Kubernetes:我可以将同一 PV 的不同子路径挂载到同一容器的不同位置吗?

我可以将同一 PV 的不同子路径挂载到同一容器的不同位置吗?

\n

我在公司的 Kubernetes 集群上运行了多个 WordPress 实例。每个实例都有自己的持久性卷和容器。我的设置的唯一特点是我将 PV 的多个路径安装到容器的多个路径上。

\n

自从几周前我们将 Kubernetes 升级到当前版本以来,我的所有容器都运行良好。从那时起,地狱就开始了。

\n
$ kubectl version\nClient Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}\nServer Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:25:46Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}\n
Run Code Online (Sandbox Code Playgroud)\n

重新启动 pod 时,如果它被安排在不同的节点上运行,它将卡在PodInitializing上,并显示以下事件消息

\n
\n

卷“pvc-ac6b35f3-7716-11e8-adda-b60483de6a40”的多重附加错误卷已专门附加到一个节点,无法附加到另一个节点

\n
\n

这是我的资源。

\n
\n

\xc2\xa0A Ceph RBD 持久卷

\n

它包含两个目录和一个文件

\n
    \n
  • html/: 包含 php 文件的目录
  • \n
  • logs/:包含日志文件的目录
  • \n
  • container-data.txt:包含一些信息的文本文件
  • \n
\n

定义为:

\n
apiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: …
Run Code Online (Sandbox Code Playgroud)

ceph kubernetes persistent-volumes

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

如何检查是否可以创建给定长度的文件?

我想创建一个给定长度(即2GB)的非稀疏文件,但我想在实际将内容写入磁盘之前检查是否可行.

换句话说,我想避免在写入时获得ENOSPC(设备上没有剩余空间).我不想创建一个大小为2GB的"测试文件"或类似的东西,只是为了检查是否有足够的空间.

那可能吗?

c linux size io file

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

模运算的结果是否定的

为什么以下C代码产生负数作为输出?我该如何防止这种情况发生?

    #include <stdio.h>

    int main()
    {
            int i;
            char buf[1024];
            for (i = 0; i < 1024; i++)
                    buf[i] = i%256;

            for (i=0; i<1024; i++) {
                    printf("%d ", buf[i]);
                    if (i%32==31)
                            printf("\n");
            }
    }
Run Code Online (Sandbox Code Playgroud)

c math modulo negative-number

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

在空指针上调用free()时发生分段错误

我在下面的代码中观察到一个非常奇怪的行为.
按原样编译,everythig按预期工作:输出为"这是一个示例程序.".

如果我取消注释所有注释行,我在第一次调用free()时会出现分段错误.

理论上评论不应该改变行为,对吧?这里有什么问题?

PS:我在Arch Linux上使用gcc(GCC)4.9.2 20141224(预发行版)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main () {
        char *welcome;
//        int max;
//        int x;
        free(welcome);
        welcome = strdup("This will be discarded.");
        free(welcome);
        welcome = strdup("This is a sample program.\n");
        printf ("%s\n", welcome);
//        max = 80;
//        x = 1;
//        while ( x <= max ) {
//                int y;
//                y = 1 ;
//                while ( y <= x ) {
//                        printf ( "#" ) …
Run Code Online (Sandbox Code Playgroud)

c free gcc segmentation-fault

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

AWS Lambda 在终止前不会解决所有承诺

我正在努力使用一个简单的 AWS Lambda 函数,该函数应该将一些消息发布到 SNS 主题。

我的电子邮件地址已订阅该主题并且订阅已确认。

该主题与我的 lambda 函数位于同一区域。

该函数与附加了两个策略的 IAM 角色关联:

  1. 默认策略 AWSLambdaBasicExecutionRole
  2. 允许该函数写入我的 SNS 主题的另一个策略

政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sns:Publish",
            "Resource": "arn:aws:sns:eu-west-1:XXXXXXXXXXXX:YYYYYYYYYYYYYYYYYYY"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是我的函数代码,在Cloud9上开发。

const AWS = require("aws-sdk");
const sns = new AWS.SNS({region:'eu-west-1'});

exports.handler = async (event, context, callback) => {

    const apiResponse = new Promise((resolve, reject) => {
        setTimeout(() => resolve(['one', 'two', 'three']), 500)
    });

    const messages = await apiResponse;

    const promises = [];

    messages.forEach(txt => …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-web-services promise aws-lambda

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