Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在数字海洋水滴上部署我的meteor应用程序_Meteor_Digital Ocean - Fatal编程技术网

如何在数字海洋水滴上部署我的meteor应用程序

如何在数字海洋水滴上部署我的meteor应用程序,meteor,digital-ocean,Meteor,Digital Ocean,我有一个简单的meteor 1.0应用程序,我想部署在我的数字海洋水滴上。我可以使用ssh访问此水滴 如何部署此应用程序?有什么我应该安装的吗?我应该在我的Droplet上使用什么设置?我已经使用arunoda的解决方案部署到我的DO Droplet上 与文档中一样,安装模块后,您将获得mup命令 您可以在这里找到有关如何部署的详细文档 我已经使用arunoda的解决方案部署到我的DO液滴上 与文档中一样,安装模块后,您将获得mup命令 您可以在这里找到有关如何部署的详细文档 我找到的所有解

我有一个简单的meteor 1.0应用程序,我想部署在我的数字海洋水滴上。我可以使用ssh访问此水滴


如何部署此应用程序?有什么我应该安装的吗?我应该在我的Droplet上使用什么设置?

我已经使用arunoda的解决方案部署到我的DO Droplet上

与文档中一样,安装模块后,您将获得
mup
命令

您可以在这里找到有关如何部署的详细文档


我已经使用arunoda的解决方案部署到我的DO液滴上

与文档中一样,安装模块后,您将获得
mup
命令

您可以在这里找到有关如何部署的详细文档


我找到的所有解决方案在Ubuntu 10.04上都无法正常工作。一个简单的解决方案是编写一个bash脚本,在远程服务器上发送代码并重新加载meteor应用程序:

  • 在开发环境和远程服务器()之间共享公钥
  • 创建以下脚本文件(myscript.sh),其中包含以下说明(确保编辑标题中的变量!):
  • myscript.sh:

    #!/bin/bash
    
    #*************** ONLY EDIT THIS PART    
    SERVER='<SERVER_IP>'
    PORT='22'
    USERNAME="root"
    PROJECT_NAME="<PROJECT_FOLDER_NAME>"
    DESTINATION_PATH="</home/any_user/projects>"
    ORIGIN_PATH="</home/any_user/projects/project_folder_name>"
    COPY_METEOR_PACKAGES=FALSE
    #******************
    
    echo ""
    echo "Deployment on $USERNAME@$SERVER:$PORT:$DESTINATION_PATH"
    echo "Make sure to have a public key on the server! http://www.linuxproblem.org/art_9.html"
    echo ""
    
    #copy the files
    if $COPY_METEOR_PACKAGES==true; then
       echo "Copy packages"
       scp -P $PORT -r $ORIGIN_PATH $USERNAME@$SERVER:$DESTINATION_PATH
    else
       echo "Do not copy packages"
       scp -P $PORT -r $ORIGIN_PATH/client $USERNAME@$SERVER:$DESTINATION_PATH
       scp -P $PORT -r $ORIGIN_PATH/common $USERNAME@$SERVER:$DESTINATION_PATH
       scp -P $PORT -r $ORIGIN_PATH/lib $USERNAME@$SERVER:$DESTINATION_PATH
       scp -P $PORT -r $ORIGIN_PATH/public $USERNAME@$SERVER:$DESTINATION_PATH
       scp -P $PORT -r $ORIGIN_PATH/server $USERNAME@$SERVER:$DESTINATION_PATH
    fi
    
    
    # reload meteor
    ssh $USERNAME@$SERVER bash -c "'
    cd $DESTINATION_PATH/$PROJECT_NAME
    meteor
    exit
    '"
    
    #/bin/bash
    #***************仅编辑此部分
    服务器=“”
    端口号为'22'
    USERNAME=“root”
    项目名称=“”
    DESTINATION_PATH=“”
    原点路径=“”
    复制\u METEOR\u包=错误
    #******************
    回声“”
    echo“部署在$USERNAME@$SERVER:$PORT:$DESTINATION_PATH上”
    echo“确保服务器上有公钥!http://www.linuxproblem.org/art_9.html"
    回声“”
    #复制文件
    如果$COPY\u METEOR\u PACKAGES==true;然后
    回显“复制包”
    scp-P$PORT-r$ORIGIN\u PATH$USERNAME@$SERVER:$DESTINATION\u PATH
    其他的
    echo“不复制包”
    scp-P$PORT-r$ORIGIN\u PATH/client$USERNAME@$SERVER:$DESTINATION\u PATH
    scp-P$PORT-r$ORIGIN\u PATH/common$USERNAME@$SERVER:$DESTINATION\u PATH
    scp-P$PORT-r$ORIGIN\u PATH/lib$USERNAME@$SERVER:$DESTINATION\u PATH
    scp-P$PORT-r$ORIGIN\u PATH/public$USERNAME@$SERVER:$DESTINATION\u PATH
    scp-P$PORT-r$ORIGIN\u PATH/server$USERNAME@$server:$DESTINATION\u PATH
    fi
    #重新装载流星
    ssh$USERNAME@$SERVER bash-c“'
    cd$DESTINATION\u PATH/$PROJECT\u NAME
    流星
    出口
    '"
    
    此处提供有用信息:

  • 只需在开发控制台中使用以下命令运行脚本:

    sh myscript.sh

  • 瞧!当您运行此脚本时,它将使用SSH协议将文件和包(无需一直传输)复制到您选择的远程服务器,并在服务器崩溃时重新启动服务器(不应该,但对我来说是这样)


  • 我找到的所有解决方案在Ubuntu 10.04上都无法正常工作。一个简单的解决方案是编写一个bash脚本,在远程服务器上发送代码并重新加载meteor应用程序:

  • 在开发环境和远程服务器()之间共享公钥
  • 创建以下脚本文件(myscript.sh),其中包含以下说明(确保编辑标题中的变量!):
  • myscript.sh:

    #!/bin/bash
    
    #*************** ONLY EDIT THIS PART    
    SERVER='<SERVER_IP>'
    PORT='22'
    USERNAME="root"
    PROJECT_NAME="<PROJECT_FOLDER_NAME>"
    DESTINATION_PATH="</home/any_user/projects>"
    ORIGIN_PATH="</home/any_user/projects/project_folder_name>"
    COPY_METEOR_PACKAGES=FALSE
    #******************
    
    echo ""
    echo "Deployment on $USERNAME@$SERVER:$PORT:$DESTINATION_PATH"
    echo "Make sure to have a public key on the server! http://www.linuxproblem.org/art_9.html"
    echo ""
    
    #copy the files
    if $COPY_METEOR_PACKAGES==true; then
       echo "Copy packages"
       scp -P $PORT -r $ORIGIN_PATH $USERNAME@$SERVER:$DESTINATION_PATH
    else
       echo "Do not copy packages"
       scp -P $PORT -r $ORIGIN_PATH/client $USERNAME@$SERVER:$DESTINATION_PATH
       scp -P $PORT -r $ORIGIN_PATH/common $USERNAME@$SERVER:$DESTINATION_PATH
       scp -P $PORT -r $ORIGIN_PATH/lib $USERNAME@$SERVER:$DESTINATION_PATH
       scp -P $PORT -r $ORIGIN_PATH/public $USERNAME@$SERVER:$DESTINATION_PATH
       scp -P $PORT -r $ORIGIN_PATH/server $USERNAME@$SERVER:$DESTINATION_PATH
    fi
    
    
    # reload meteor
    ssh $USERNAME@$SERVER bash -c "'
    cd $DESTINATION_PATH/$PROJECT_NAME
    meteor
    exit
    '"
    
    #/bin/bash
    #***************仅编辑此部分
    服务器=“”
    端口号为'22'
    USERNAME=“root”
    项目名称=“”
    DESTINATION_PATH=“”
    原点路径=“”
    复制\u METEOR\u包=错误
    #******************
    回声“”
    echo“部署在$USERNAME@$SERVER:$PORT:$DESTINATION_PATH上”
    echo“确保服务器上有公钥!http://www.linuxproblem.org/art_9.html"
    回声“”
    #复制文件
    如果$COPY\u METEOR\u PACKAGES==true;然后
    回显“复制包”
    scp-P$PORT-r$ORIGIN\u PATH$USERNAME@$SERVER:$DESTINATION\u PATH
    其他的
    echo“不复制包”
    scp-P$PORT-r$ORIGIN\u PATH/client$USERNAME@$SERVER:$DESTINATION\u PATH
    scp-P$PORT-r$ORIGIN\u PATH/common$USERNAME@$SERVER:$DESTINATION\u PATH
    scp-P$PORT-r$ORIGIN\u PATH/lib$USERNAME@$SERVER:$DESTINATION\u PATH
    scp-P$PORT-r$ORIGIN\u PATH/public$USERNAME@$SERVER:$DESTINATION\u PATH
    scp-P$PORT-r$ORIGIN\u PATH/server$USERNAME@$server:$DESTINATION\u PATH
    fi
    #重新装载流星
    ssh$USERNAME@$SERVER bash-c“'
    cd$DESTINATION\u PATH/$PROJECT\u NAME
    流星
    出口
    '"
    
    此处提供有用信息:

  • 只需在开发控制台中使用以下命令运行脚本:

    sh myscript.sh

  • 瞧!当您运行此脚本时,它将使用SSH协议将文件和包(无需一直传输)复制到您选择的远程服务器,并在服务器崩溃时重新启动服务器(不应该,但对我来说是这样)


  • 伟大的这就是我一直在寻找的工具。它只是为我做所有的文书工作,比如连接到ssh,复制文件,等等。。。谢谢!:)@JoeTek,如果这回答了您的问题,请通过单击向上/向下投票按钮下的右图标接受此作为答案,我看到您的其他问题也未标记为已接受。请这样做。哦!我想我只需要投票!谢谢你所做的一切。:)请注意,对于目标服务器,在Ubuntu 10.04上,这并不简单。我有很多问题。但对于Ubuntu 14.04来说,一切都很顺利。未在Ubuntu 12.02上测试。太棒了!这就是我一直在寻找的工具。它只是为我做所有的文书工作,比如连接到ssh,复制文件,等等。。。谢谢!:)@JoeTek,如果这回答了您的问题,请通过单击向上/向下投票按钮下的右图标接受此作为答案,我看到您的其他问题也未标记为已接受。请这样做。哦!我想我只需要投票!谢谢你所做的一切。:)请注意,对于目标服务器,在Ubuntu 10.04上,这并不简单。我有很多问题。但对于Ubuntu 14.04来说,一切都很顺利。未在Ubuntu 12.02上测试。