流星:部署不会更新 AWS EC2 上的应用程序
Meteor-up : deploy does not update app on AWS EC2
我在 AWS EC2 实例上托管一个 Meteor 应用程序。我使用 Meteor-up(mup deploy
命令)成功部署了我的应用程序两次。
但经过一些修改后,mup deploy
仍然是 return 一条非常好的消息(下图),但什么也没做,应用程序没有更新。之后我尝试重新启动实例(并清理我自己的缓存)但我仍然得到旧版本。
Building App Bundle Locally
Started TaskList: Pushing Meteor
[XX.XX.XX.X] - Pushing Meteor App Bundle to The Server
[XX.XX.XX.X] - Pushing Meteor App Bundle to The Server: SUCCESS
[XX.XX.XX.X] - Pushing the Startup Script
[XX.XX.XX.X] - Pushing the Startup Script: SUCCESS
我可以使用 ssh
连接到该应用程序,但我不知道下一步该怎么做。我最近切换到 Meteor 1.4.1(从 Meteor 1.4.0),但我认为这没有关系。
有人可以帮我调查这个问题/提供一些可能的解决方案吗?
编辑:这是来自 docker info
命令的日志。我有两个容器运行,但部署似乎并没有增加这个数字,我也不熟悉Docker。
Containers: 2
Running: 2
Paused: 0
Stopped: 0
Images: 4
Server Version: 1.12.0
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 20
Dirperm1 Supported: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge null host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor
Kernel Version: 3.13.0-93-generic
Operating System: Ubuntu 14.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 992.5 MiB
Name: ip-XXX-XX-XX-XX
ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
127.0.0.0/8
编辑 2 : 这个问题似乎与某种假阳性有关。部署没问题,但根据 docker 日志,应用程序实际上在启动时崩溃并因此回滚到上一个版本。
请检查配置文件中的应用路径。配置文件中的路径可能不同。
好的,我找到问题了。我的 settings.json
文件有语法错误(尾随逗号),因此应用程序实际上在启动时崩溃了。
为了获取此信息,我使用 ssh 连接到我的 EC2 实例。然后我使用 docker ps
找到容器 ID,并使用 docker logs MyContainerId
命令获取应用程序日志。
mup logs
实际上应该在不需要 ssh 连接到实例的情况下提供相同的信息,但是有一个关于它的未决问题并且它不起作用。
日志告诉我 Meteor.settings
未定义,我简单地修复了它。
我在 Github 此处 https://github.com/kadirahq/meteor-up/issues/242 打开了一个问题,因为我认为 mup deploy
应该从一开始就通知我有关崩溃的信息。
我在 AWS EC2 实例上托管一个 Meteor 应用程序。我使用 Meteor-up(mup deploy
命令)成功部署了我的应用程序两次。
但经过一些修改后,mup deploy
仍然是 return 一条非常好的消息(下图),但什么也没做,应用程序没有更新。之后我尝试重新启动实例(并清理我自己的缓存)但我仍然得到旧版本。
Building App Bundle Locally
Started TaskList: Pushing Meteor
[XX.XX.XX.X] - Pushing Meteor App Bundle to The Server
[XX.XX.XX.X] - Pushing Meteor App Bundle to The Server: SUCCESS
[XX.XX.XX.X] - Pushing the Startup Script
[XX.XX.XX.X] - Pushing the Startup Script: SUCCESS
我可以使用 ssh
连接到该应用程序,但我不知道下一步该怎么做。我最近切换到 Meteor 1.4.1(从 Meteor 1.4.0),但我认为这没有关系。
有人可以帮我调查这个问题/提供一些可能的解决方案吗?
编辑:这是来自 docker info
命令的日志。我有两个容器运行,但部署似乎并没有增加这个数字,我也不熟悉Docker。
Containers: 2
Running: 2
Paused: 0
Stopped: 0
Images: 4
Server Version: 1.12.0
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 20
Dirperm1 Supported: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge null host overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor
Kernel Version: 3.13.0-93-generic
Operating System: Ubuntu 14.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 992.5 MiB
Name: ip-XXX-XX-XX-XX
ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
127.0.0.0/8
编辑 2 : 这个问题似乎与某种假阳性有关。部署没问题,但根据 docker 日志,应用程序实际上在启动时崩溃并因此回滚到上一个版本。
请检查配置文件中的应用路径。配置文件中的路径可能不同。
好的,我找到问题了。我的 settings.json
文件有语法错误(尾随逗号),因此应用程序实际上在启动时崩溃了。
为了获取此信息,我使用 ssh 连接到我的 EC2 实例。然后我使用 docker ps
找到容器 ID,并使用 docker logs MyContainerId
命令获取应用程序日志。
mup logs
实际上应该在不需要 ssh 连接到实例的情况下提供相同的信息,但是有一个关于它的未决问题并且它不起作用。
日志告诉我 Meteor.settings
未定义,我简单地修复了它。
我在 Github 此处 https://github.com/kadirahq/meteor-up/issues/242 打开了一个问题,因为我认为 mup deploy
应该从一开始就通知我有关崩溃的信息。