我正在尝试将Meteor应用程序部署到我的Ubuntu 14.04 (Trusty ) VPS上。我在DockerHub上使用了一个私有的Docker注册表,并从我在Bitbucket上的Git存储库进行了自动构建设置。这真的很好用。
然而,当我运行我的容器时,我无法看到Meteor应用程序正在运行。我在他们的文档中读到了关于phusion-passenger和Meteor的内容,但我认为指南遗漏了什么,因为我无法让它工作。
我的方法是使用meteor创建一个应用程序:
meteor create simple-wishes这将创建一个包含CSS、HTML和JavaScript文件的目录(以及一个.meteor文件夹)。在这个目录之外,我创建了一个Dockerfile,如下所示:
FROM phusion/passenger-nodejs:0.9.14
MAINTAINER Søren Pedersen
# Set correct environment variables.
ENV HOME /root
# Use baseimage-docker's init process.
CMD ["/sbin/my_init"]
# ssh
ADD ssh/id_rsa.pub /tmp/your_key
RUN cat /tmp/your_key >> /root/.ssh/authorized_keys && rm -f /tmp/your_key
# install meteor
RUN curl https://install.meteor.com | /bin/sh
# Remove the default site
RUN rm /etc/nginx/sites-enabled/default
# Enable nginx
RUN rm -f /etc/service/nginx/down
# Setup app
ADD webapp.conf /etc/nginx/sites-enabled/webapp.conf
RUN mkdir /home/app/simple-wishes
ADD simple-wishes /home/app/simple-wishesDockerfile文件中引用的webapp.conf文件如下所示:
server {
listen 80;
server_name simple-wishes.com;
root /home/app/simple-wishes/public;
passenger_enabled on;
passenger_user app;
passenger_sticky_sessions on;
passenger_set_cgi_param MONGO_URL mongodb://localhost:27017/meteor;
passenger_set_cgi_param MONGO_OPLOG_URL mongodb://localhost:27017/local;
passenger_set_cgi_param ROOT_URL http://simple-wishes.com;
# Set these ONLY if your app is a Meteor bundle!
#passenger_app_type node;
#passenger_startup_file main.js;
}在我的VPS上,我运行一个容器,如下所示:
docker run -d -p 80:80 -p 2200:22 sohape/simplewishes这将从DockerHub中提取映像,并以守护程序模式启动容器,将端口80和22映射到主机上的端口80和2200。
当我现在向服务器发出一个HTTP请求(http://simple-wishes.com)时,我从nginx得到一个错误:
502 Bad Gateway我肯定在这里漏掉了一些步骤,但我不知道是什么。所以我希望有人能给我指明正确的方向。
发布于 2014-11-06 05:22:28
Docker容器内的本地主机与外部的本地主机不同。如果MongoDB在自己的容器中或使用众所周知的DNS条目,您可能希望使用--link链接容器。
发布于 2014-11-17 17:20:00
当您在没有捆绑应用程序的情况下运行Meteor时,Meteor将启动一个MongoDB实例,但不会在默认的MongoDB端口上运行。
检查堆栈溢出问题的答案。
发布于 2015-02-23 16:56:01
你可以尝试使用我的Docker镜像,看看它是如何设置的。要快速运行它,请使用以下命令(请确保首先对Meteor应用程序进行捆绑):
docker run -d \
-e ROOT_URL=http://yourapp.com \
-e MONGO_URL=mongodb://url \
-e MONGO_OPLOG_URL=mongodb://oplog_url \
-v /dir_containing_bundledir:/home/app/webapp \
-p 80:80 \
joostlaan/meteor-docker-passenger你可以看到how I built it at GitHub。
https://stackoverflow.com/questions/26752033
复制相似问题