【问题标题】:Sailsjs - How to package sails applicationSailsjs - 如何打包 Sails 应用程序
【发布时间】:2017-11-26 12:54:36
【问题描述】:
我正在开发一个 Sails 应用程序。
目前,要移动到另一台服务器。
我必须经过 3 个步骤:
Step1:查看源代码。
Step2:运行npm install下载依赖
Step3:通过cmd sails lift --prod部署sails app
有什么方法可以将 .zip 推送到服务器并运行 cmd deploy?
我的目的是:
第 1 步:全部压缩到 1 个文件夹
第 2 步:上传并部署
无需安装依赖手册
喜欢java分发的方式> 建个war文件放到tomcat中
或者 Angular CLI 全部编译到dist 文件夹
谢谢
【问题讨论】:
标签:
node.js
npm
package
sails.js
【解决方案1】:
您可以利用 Jenkins 管道和 shell 脚本来实现它。
- 创建一个詹金斯管道
- 构建一个 zip 文件并将其推送到某个存储空间。 (亚马逊 S3?)
- 执行 shell 脚本以 ssh 进入生产服务器并执行另一个 shell 脚本,该脚本从 S3 下载最新版本,安装依赖项,然后启动应用程序。
Jenkins 文件示例:
pipeline {
agent any
stages {
stage('Build') {
steps {
checkout scm
echo 'Zipping..'
sh 'echo "My-app-`date +"%Y-%m-%dT%H-%M-%S"`.zip" >> buildName.txt'
sh 'if [ -d .git ]; then echo "Removing git folder"; rm -r .git/ ; fi;'
sh 'zip -r `cat buildName.txt` .'
archiveArtifacts artifacts: '*.zip'
}
}
stage('Test') {
steps {
echo 'test..'
}
}
stage('Upload') {
steps {
echo 'uploading..'
sh 's3cmd put `cat buildName.txt` s3://my-app-builds'
}
}
stage('Deploy') {
steps {
echo 'Deploying....'
sh './deploy_to_production.sh'
}
}
}
}
否则,您可以将应用程序 dockerize。