代码之家  ›  专栏  ›  技术社区  ›  markhorrocks

Docker-无法在Kubernetes群集上启动Webpack dev服务器

  •  0
  • markhorrocks  · 技术社区  · 6 年前

    我尝试在DigitalOceanKubernetes集群的Rails应用程序中启动WebpackDev服务器。我想不出正确的命令。这个应用程序在Docker本地工作。

    我总是出现这样的错误:

    错误:无法启动容器“exactpos webpack”:来自的错误响应 守护进程:oci runtime create失败:container_linux.go:348:正在启动 容器进程导致“exec:\”bin/bash \“:stat bin/bash:no such 文件或目录“:未知的后退重新启动失败的容器

    以下是docker-compose.yml文件中的代码:

    webpack_dev_server: build: .
    command: ./bin/webpack-dev-server 
    ports:
    - 3035:3035 
    volumes:
    - .:/usr/src/app
    - gem_cache:/gems 
    env_file:
    - .env/development/web
    - .env/development/database environment:
    - WEBPACKER_DEV_SERVER_HOST=0.0.0.0
    

    这是我的kubectl部署yaml文件:

    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: exactpos-webpack
    spec:
      replicas: 1
      minReadySeconds: 150
      strategy:
        type: RollingUpdate
        rollingUpdate:
          maxSurge: 1
          maxUnavailable: 1  
      selector:
        matchLabels: 
          app: exactpos-webpack
          tier: webpack
      template:
        metadata:
          name: exactpos-webppack
          labels:
            app: exactpos-webpack
            tier: webpack
        spec:
          imagePullSecrets:
            - name: dockerhub-cred
          containers:             
            - name: exactpos-webpack
              image: index.docker.io/markhorrocks/exactpos_webpacker_dev_server:prod
              command: ["bin/bash","-c", "./bin/webpack_dev_server"]
              imagePullPolicy: Always
              ports:
                - containerPort: 3500       
              readinessProbe:
                tcpSocket:
                  port: 3500
                initialDelaySeconds: 150
                timeoutSeconds: 5
                periodSeconds: 5
                failureThreshold: 10
              livenessProbe:
                tcpSocket:
                  port: 3500
                initialDelaySeconds: 120
                timeoutSeconds: 5
                periodSeconds: 5
                failureThreshold: 10
              env:
              - name: RAILS_LOG_TO_STDOUT
                value: "true"
              - name: RAILS_SERVE_STATIC_FILES
                value: "true"
              - name: DATABASE_NAME
                value: "exactpos_production"
              - name: DATABASE_PORT
                value: "5432"
              - name: DATABASE_URL
                value: "postgres"
              - name: DATABASE_USER
                valueFrom:
                  secretKeyRef:
                    name: "db-user"
                    key: "username"
              - name: DATABASE_PASSWORD
                valueFrom:
                  secretKeyRef:
                    name: "db-user-pass"
                    key: "password"
              - name: REDIS_URL
                value: "redis"
              - name: REDIS_PORT
                value: "6379"
              - name: RAILS_ENV
                value: "production"
              - name: WEBPACKER_DEV_SERVER_HOST
                value: "0.0.0.0"
              - name: SECRET_KEY_BASE
                valueFrom:
                  secretKeyRef:
                    name: "secret-key-base"
                    key: "secret-key-base"
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Prafull Ladha    6 年前

    您的deployment.yaml包含以下内容:

    command: ["bin/bash","-c", "./bin/webpack_dev_server"]
    

    没有 bin/bash 出现在Docker图像中。应该是这样的:

    command: ["/bin/bash","-c", "./bin/webpack_dev_server"]
    

    我相信,它会解决你的问题。

    edit1:我又看了你的docker-compose.yml文件,看到了下面的一行:

    volumes:
    - .:/usr/src/app
    

    这意味着在Docker运行时,您复制了 . 目录到 /usr/src/app . 是 config/webpacker.yml 当时在场吗?或者你叠加了 /UR/SRC/APP 不管是什么 . 运行时的目录。你能分享一下你的应用程序的摘要文件吗?