【问题标题】:How to deploy meteor 0.6.0 + to heroku如何将流星 0.6.0 + 部署到 heroku
【发布时间】:2013-06-11 15:53:49
【问题描述】:

我正在尝试将我的流星 0.6.3 应用程序部署到 heroku 我尝试使用 https://github.com/jordansissel/heroku-buildpack-meteor.git 它只支持流星 0.5.9 我还尝试按照流星文档的建议将我的应用程序捆绑在一个 .tgz 文件中,但无法deploy 我一直检测到 no cedar 应用?

【问题讨论】:

    标签: heroku meteor


    【解决方案1】:

    我必须做一些工作才能让 Meteor 0.8.2 正确部署到 Heroku。我正在发布对我有用的步骤序列。如果你愿意的话,你可以把它变成一个参数化的 Bash 脚本。

    # Define Meteor/Heroku app name:
    export APP_NAME='Your-App-Name-Here'
    
    # Create Meteor app:
    meteor create --example leaderboard "${APP_NAME}"
    cd "${APP_NAME}"
    git init .
    git add .
    git commit -m 'Initial commit'
    
    if ( heroku apps | egrep --silent "^${APP_NAME}$" )
    then
        # If re-using an existing Heroku app:
        echo "Heroku app '${APP_NAME}' already exists; configuring..."
        git remote remove heroku
        heroku git:remote -a "${APP_NAME}"
        heroku config:set \
            BUILDPACK_URL=https://github.com/oortcloud/heroku-buildpack-meteorite.git
    else
        # If creating the Heroku app for the first time:
        echo "Creating Heroku app '${APP_NAME}'..."
        heroku create --stack cedar --app "${APP_NAME}" \
            --buildpack https://github.com/oortcloud/heroku-buildpack-meteorite.git
    fi
    
    heroku config:add ROOT_URL="http://${APP_NAME}.herokuapp.com"
    
    # Make sure you have a verified account to enable the mongohq:sandbox add-on
    heroku addons:add mongohq:sandbox
    
    # Visit: https://addons-sso.heroku.com/apps/${APP_NAME}/addons/mongohq:sandbox
    open "https://addons-sso.heroku.com/apps/${APP_NAME}/addons/mongohq:sandbox"
    
    # - Click 'add a database user'
    # - Enter a user name and password, and click 'Add user'
    # - Click 'Overview' tab
    
    # Set the following variables appropriately, based on the user name, password, and
    # values within the 'Mongo URI' string in the Overview tab
    export MONGO_DB_HOST='kahana.mongohq.com'
    export MONGO_DB_PORT='db-port'
    export MONGO_DB_NAME='db-name'
    export MONGO_DB_USER='db-user'
    export MONGO_DB_PASS='db-pass'
    
    # Calculate connection string and URL:
    export MONGO_DB_CONN="${MONGO_DB_HOST}:${MONGO_DB_PORT}/${MONGO_DB_NAME}"
    export MONGO_DB_URL="mongodb://${MONGO_DB_USER}:${MONGO_DB_PASS}@${MONGO_DB_CONN}"
    
    # If you have mongo client installed, verify the connection:
    export MONGO_CMD='mongo'
    "${MONGO_CMD}" "${MONGO_DB_CONN}" -u "${MONGO_DB_USER}" -p"${MONGO_DB_PASS}"
    
    heroku config:add MONGO_URL="${MONGO_DB_URL}"
    
    # Verify configs look okay:
    heroku config
    
    # Configure a public/private SSH key pair in order to perform builds:
    export HEROKU_RSA_NAME='id_rsa@herokuapp.com'
    export HEROKU_RSA_FILE=~/.ssh/"${HEROKU_RSA_NAME}"
    
    # If creating the keys for the first time:
    [[ -f "${HEROKU_RSA_FILE}" ]] || {
        ssh-keygen -t rsa -f "${HEROKU_RSA_FILE}"
        ssh-add "${HEROKU_RSA_FILE}"
    }
    
    heroku keys:add "${HEROKU_RSA_FILE}.pub"
    
    # Deploy the Meteor app via Git and the custom build pack:
    git push heroku master
    
    # Any errors?
    heroku logs
    
    # Make sure the Heroku app is running using one web dyno:
    heroku ps:scale web=1
    
    # Test the app
    heroku open
    

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 并非总是如此。我遇到的情况是,对于这个 buildpack,node 未被 Heroku 识别为有效命令——bash: node: command not found。如果我使用其他 buildpack(即使我在 Meteor 0.6.3 上),那么我的 Meteor 应用程序的主 JavaScript 文件会出现错误:Meteor(作为对象)无法识别。我读到问题中提到的buildpack的作者正在考虑更新Meteor 0.6.x的buildpack,所以问题可能很快就会解决。
      • 还在苦苦挣扎“bash: node: command not found” - Meteor 0.6.5.1
      【解决方案3】:

      对于那些在bash: node: command not found 问题上遇到问题的人,我也经历过,并通过删除 Procfile 解决了它。

      显然,Procfile 指示 Heroku 使用 node main.js 运行应用程序,但 node 不是有效命令,因为它不包含在 PATH 变量或类似变量中。

      通过删除 Procfile,Heroku 检测到该应用程序是一个流星应用程序,并使用具有完整路径的节点二进制文件运行它。

      很抱歉发布答案而不是评论,但我的声誉不允许我发表评论。

      另外,请记住 ROOT_URL 必须以 http:// 开头

      【讨论】:

        【解决方案4】:

        我在 Heroku 上运行两个 Meteor 应用程序(两个应用程序都连接到 mongolab,所以外部 MongoDB 实例)。

        我在这里记录了我是如何做到的: .../how-to-deploy-meteor-on-heroku-with.html

        【讨论】:

          猜你喜欢
          • 2013-12-25
          • 2014-09-24
          • 1970-01-01
          • 2013-02-17
          • 2016-10-12
          • 2015-06-06
          • 1970-01-01
          • 2018-05-05
          • 2015-09-22
          相关资源
          最近更新 更多