有关在Google Cloud App Engine上部署流星应用程序的问题:APP_CONTAINER_CRASHED

问题描述 投票:0回答:1

TL; DR

复制此:https://github.com/calvan-liang/radgrad2googlecloudissue

确保您已安装meteor-google-cloud和gcloud CLI。如果没有:

在Powershell上:

npm install meteor-google-cloud -g

在Ubuntu终端上:

echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] 
https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a 
/etc/apt/sources.list.d/google-cloud-sdk.list

sudo apt-get install apt-transport-https ca-certificates gnupg

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --
keyring /usr/share/keyrings/cloud.google.gpg add -

sudo apt-get update && sudo apt-get install google-cloud-sdk

meteor-google-cloud --init

如果不成功或不成功,Ubuntu:https://cloud.google.com/sdk/install

要部署,在应用目录中:

meteor-google-cloud --settings deploy/settings.json --app deploy/app.yml -- 
docker deploy/Dockerfile

APP_CONTAINER_CRASHED的原因是什么,如何解决?

当前遵循https://github.com/EducationLink/meteor-google-cloud的README.md,以使用Google Cloud部署预先存在的项目。在部署的第四步。当默认服务正在更新时,我收到此错误:

ERROR: (gcloud.app.deploy) Error Response: [9]
Application startup error! Code: APP_CONTAINER_CRASHED
/app/programs/server/node_modules/fibers/future.js:313
                                                throw(ex);
                                                ^

MongoNetworkError: failed to connect to server [bla.com:27017] on first connect [MongoNetworkError: connection timed out
    at connectionFailureError (/app/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/core/connection/connect.js:406:14)
    at Socket.<anonymous> (/app/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/core/connection/connect.js:294:16)
    at Object.onceWrapper (events.js:417:28)
    at Socket.emit (events.js:311:20)
    at Socket.EventEmitter.emit (domain.js:482:12)
    at Socket._onTimeout (net.js:478:8)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7) {
  name: 'MongoNetworkError',
  [Symbol(mongoErrorContextSymbol)]: {}
}]
    at Pool.<anonymous> (/app/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/core/topologies/server.js:438:11)
    at Pool.emit (events.js:311:20)
    at Pool.EventEmitter.emit (domain.js:482:12)
    at /app/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/core/connection/pool.js:561:14
    at /app/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/core/connection/pool.js:994:11
    at /app/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/core/connection/connect.js:31:7
    at callback (/app/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/core/connection/connect.js:264:5)
    at Socket.<anonymous> (/app/programs/server/npm/node_modules/meteor/npm-mongo/node_modules/mongodb/lib/core/connection/connect.js:294:7)
    at Object.onceWrapper (events.js:417:28)
    at Socket.emit (events.js:311:20)
    at Socket.EventEmitter.emit (domain.js:482:12)
    at Socket._onTimeout (net.js:478:8)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7) {
  name: 'MongoNetworkError',
  [Symbol(mongoErrorContextSymbol)]: {}
}

使用的先前存在的项目是从https://github.com/radgrad/radgrad2中克隆的。我在radgrad2 / app中添加了一个部署目录。在deploy目录中,有以下文件:

Dockerfile

FROM gcr.io/google_appengine/nodejs
RUN install_node {{ nodeVersion }}
RUN npm install npm@{{ npmVersion }}
RUN node -v
RUN npm -v
COPY . /app/
RUN (cd programs/server && npm install --unsafe-perm)
CMD node main.js

app.yml

runtime: custom
service: default
env: flex
threadsafe: true
zones:
- us-west3-b
- us-west3-c
resources:
  cpu: 1
  memory_gb: 1
  disk_size_gb: 20
network:
  session_affinity: true
automatic_scaling:
  max_num_instances: 2
skip_files:
- ^(.*/)?\.dockerignore$
- ^(.*/)?\yarn-error.log$
- ^(.*/)?\.git$
- ^(.*/)?\.hg$
- ^(.*/)?\.svn$

settings.json

{
  "public": {},
  "private": {},
  "meteor-google-cloud": {
    "project": "radgrad2test",
    "stop-previous-version": "",
    "env_variables": {
      "MONGO_URL": "mongodb://user:[email protected]",
      "ROOT_URL": "https://example.de"
    }
  }
}

注意,我正在Windows 10 Home上使用WSL 2和Docker Desktop运行它。

[可能导致应用程序容器崩溃的原因是什么?我该如何解决此问题,或者应该在哪里找到此问题的根源?

docker meteor google-cloud-platform
1个回答
0
投票

MongoNetworkError:无法连接到服务器

这是在最新版的Meteor版本中具有just recently being fixed的错误:

在某些ScaleGrid和IBM Cloud等MongoDB主机提供程序中,某些开发人员由于证书而出现此错误

MongoNetworkError:首次连接时无法连接到服务器[sg-meteorappdb-32194.servers.mongodirector.com:27017] [Error:自签名证书

因此,为了解决这个问题,现在有了通过流星[C0​​]文件配置Mongo选项的选项。现在是settings.json

added to the documentation
© www.soinside.com 2019 - 2024. All rights reserved.