小编den*_*ski的帖子

为什么 docker 创建空的 node_modules 以及如何避免它?

有一些类似的问题,但他们没有回答为什么node_modulesdocker 在 repo 中创建空目录,即使 dockerfile 设置为在容器中保存 node_modules?

我很想知道为什么在主机上创建目录为空,假设纱线已经在容器内安装了包node_modules以及如何避免它。

## Dockerfile

FROM node:8.11.4-alpine
RUN apk update && apk add yarn
RUN yarn global add nodemon
WORKDIR /usr/app

COPY package.json yarn.lock /usr/app/
RUN yarn

EXPOSE 3000

Run Code Online (Sandbox Code Playgroud)
## docker-compose.yml

version: "3.2"

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    command: nodemon index.js
    volumes:
      - .:/usr/app
      - /usr/app/node_modules
    ports:
      - "3000:3000"

Run Code Online (Sandbox Code Playgroud)

node.js docker

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

来自主机的microk8s的简单进入?

我想对MicroK8做两件事:

  1. 将主机(Ubuntu 18.04)端口80/443路由到Microk8s
  2. 使用类似kubernetes.io文档中定义的简单入口的内容

我的最终目标是创建一个位于Ubuntu主机上的单节点Kubernetes集群,然后使用入口将不同的域路由到服务中各自的Pod。

在过去的几天里,我一直在尝试使用Microk8s进行此操作,但是我无法解决这个问题。

  • 到目前为止,我得到的最好的结果是使用MetalLB创建负载均衡器。但这要求我使用本地网络上可用的免费IP地址,而不要使用主机IP地址。

  • 我还启用了,default-http-backend并尝试导出和编辑这些配置文件,但均未成功。

作为示例,Minikube一旦启用了入口添加功能,它将可以正常工作。此示例显示了群集IP上端口80处的基本Nginx服务器映像:

# ingress-service.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    # - host: nginx.ioo
    - http:
        paths:
          - path: /
            backend:
              serviceName: nginx-cluster-ip-service
              servicePort: 80
Run Code Online (Sandbox Code Playgroud)
# nginx-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      component: nginx
  template:
    metadata:
      labels:
        component: nginx
    spec:
      containers:
        - name: nginx
          image: nginx
          ports:
            - containerPort: …
Run Code Online (Sandbox Code Playgroud)

kubernetes kubernetes-ingress microk8s

8
推荐指数
3
解决办法
2603
查看次数

是否可以使用 Kubernetes 动态添加主机到入口?

如果您正在管理入口服务(如下例所示),是否可以添加其他主机/服务(例如 echo3.example.com),而不是更新下面的入口文件,而无需应用原始版本的更新版本文件?

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: echo-ingress
spec:
  rules:
  - host: echo1.example.com
    http:
      paths:
      - backend:
          serviceName: echo1
          servicePort: 80
  - host: echo2.example.com
    http:
      paths:
      - backend:
          serviceName: echo2
          servicePort: 80

Run Code Online (Sandbox Code Playgroud)
# NEW HOST/SERVICE

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: echo-ingress
spec:
  rules:
  - host: echo3.example.com ### <= `echo3` addeded
    http:
      paths:
      - backend:
          serviceName: echo3
          servicePort: 80
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以应用这个新主机而不需要扩展旧文件?

kubernetes kubernetes-ingress

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

在 DigitalOcean 上使用 terraform 预部署 Kubernetes 负载均衡器?

我正在学习如何使用 terraform 在 DO 上创建 k8s 集群,我一直在尝试获取ID我创建的单个 K8s 节点,并从负载均衡器中引用它。

这样做的主要原因是我可以在.tf文件中声明 FQDN。

首先,这是集群声明:


variable "digitalocean_token" {}

provider "digitalocean" {
  token = "${var.digitalocean_token}"
}

resource "digitalocean_kubernetes_cluster" "foo" {
  name    = "foo"
  region  = "nyc1"
  version = "1.12.1-do.2"

  node_pool {
    name       = "woker-pool"
    size       = "s-1vcpu-2gb"
    node_count = 1
  }
}

Run Code Online (Sandbox Code Playgroud)

这是负载均衡器声明:

resource "digitalocean_loadbalancer" "foo" {
  name = "k8s-lb.nyc1"
  region = "nyc1"

  forwarding_rule {
    entry_port = 80
    entry_protocol = "http"

    target_port     = 80
    target_protocol = "http"
  }
  droplet_ids = …
Run Code Online (Sandbox Code Playgroud)

load-balancing digital-ocean kubernetes terraform

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

GraphQL 枚举类型会自动解析它们的值吗?

我应该期望枚举类型自动解析还是仅存在类型以限制选项?

给定以下 GraphQL Schema:

type Job {
  description: String!
  status: Status!
}

enum Status {
  PENDING_REVIEW
  PENDING_APPROVAL
  APPROVED
}
Run Code Online (Sandbox Code Playgroud)

和一个看起来像这样的查询:

query job {
  description
  status
}
Run Code Online (Sandbox Code Playgroud)

如果我的数据库返回以下内容:

{ "description": "Some irrelevant job description", "status": 1 }
Run Code Online (Sandbox Code Playgroud)

我希望 GraphQL 返回:

{ "description": "Some irrelevant job description", "status": "PENDING_APPROVAL" }
Run Code Online (Sandbox Code Playgroud)

我是否设置错误,或者这种预期行为是否需要我为 status

const getQuestionStatus = ({ status }) => ['PENDING_REVIEW', 'PENDING_APPROVAL', 'APPROVED'][status];
Run Code Online (Sandbox Code Playgroud)

graphql

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

电容器 - 为 cors 设置原点

是否可以在 Android Capacitor 应用程序上设置默认来源而https://example.org不是标准http://localhost

android capacitor

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

Kubernetes terraform,使用 EOF 在 null_resource 内申请

Terraform Kubernetes 不允许使用除apiVersion: v1. 但是我想通过使用null_resource配置器运行kubectl apply -f ...kubectl delete -f ...(使用when = "destroy")来解决这个问题。

我已经尝试使用 kubernetes apply EOF 模式让它工作,但还没有管理它。

这是我到达的地方,但似乎|是非法字符。

也希望我可以将 yaml 字符串提取到一个多行变量中,这样我就不必在 null 资源中重复它。

resource "null_resource" "res_name" {
  provisioner {
    command = <<EOF | kubectl apply -f -
      apiVersion: extensions/v1beta1
      kind: Ingress
      metadata:
        name: some-ingress-name
        annotations:  
          kubernetes.io/ingress.class: nginx
      spec:
        rules:
        - host: subdomain.example.com
          http:
            paths:
            - backend:
                serviceName: some-cluster-ip-service
                servicePort: 80
  }

  provisioner {
    when = "destroy"

    command …
Run Code Online (Sandbox Code Playgroud)

kubernetes terraform

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

将主机/本地环境变量传递到 Kubectl 'exec' 命令

我想将 env vars 传递到exec命令中。

到目前为止,我已经尝试了以下

SOME_VAR="A String"

kubectl exec -it a-pod-name -- sh -c 'env NEW_VAR=$SOME_VAR; echo $NEW_VAR > some-file-name.txt'
Run Code Online (Sandbox Code Playgroud)

我意识到kubectl cp如果我想复制文件,我可以使用,但这不适合我的用例。

kubernetes kubectl

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

我可以在foreach循环中使用$ ++ PHP来增加'as'索引吗?

如果我想创建一个foreach循环,将每一个玩家添加到A队或B队

foreach ( $selectedplayers as $selectedplayer ) {
        TeamA[] = $selectedplayer;
        $selectedplayer++;
        TeamB[] = $selectedplayer; 
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以用for循环来做,但有兴趣看看是否可以这样做.

php arrays foreach

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

巴什:`如果![$ falseSetVar]`不会为我正确评估

我在循环中有一个if语句.它最初设置为false,所以我在循环的第一次运行时在文件中插入一个时间戳.

我似乎无法得到以下正确评估.

$ConnectionIsCurrently=false
if ! [ $ConnectionIsCurrently ]; then
    # changing false to true so this only occurs once. 
    $ConnectionIsCurrently=true
fi
Run Code Online (Sandbox Code Playgroud)

这是完整的循环:

while [  $i -le $NoOfTests ]; do
    ping -c1 -t1 www.google.ie > /dev/null
    if [ $? = 0 ]; then
        ConTestPASSCount=$((ConTestPASSCount+1))
        if ! [ $ConnectionIsCurrently ]; then
            printf 'PASSED AT: '
            date "+%s"
            printf 'PASSED AT: ' >> $directory$LogFile
            date "+%s" >> $directory$LogFile
            ConnectionIsCurrently=true
        fi
        echo "PASSCount $ConTestPASSCount"
    else
        ConTestFAILCount=$((ConTestFAILCount+1))
        if [ $ConnectionIsCurrently ]; then
            printf 'FAILED AT: …
Run Code Online (Sandbox Code Playgroud)

bash sh

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

列出.prototype的属性?

使用javascript是否可以console.log列出.prototype与给定类型的对象相关联的属性?

我正在使用Firebase Cloud-Firestore,想查看原型中存在的用于调用数据库的内容。

例如,db调用返回类型为的对象QuerySnapshot { ... }。我想看看存在什么QuerySnapshot.prototype

我可以使用来映射返回的值.map,但是如果我控制台注销该对象,则它不是数组,因此大概是它继承自原型的自定义.map吗?

javascript

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