【发布时间】:2020-10-05 10:58:54
【问题描述】:
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:pw@bla.com",
"ROOT_URL": "https://example.de"
}
}
}
请注意,我在 Windows 10 Home 上使用 WSL 2 和 Docker Desktop 运行它。
什么可能导致应用容器崩溃?我该如何解决这个问题,或者我应该在哪里寻找这个问题的根源?
【问题讨论】:
标签: docker meteor google-cloud-platform