reactjs - Bitbucket 管道 - 构建 Create-react-app,对其进行压缩,通过 ftp 上传并在服务器上解压缩
问题描述
我正在使用 bitbucket 管道来部署我的反应应用程序。
现在我的管道看起来像这样:
image: node:10.15.3
pipelines:
default:
- step:
name: Build
script:
- npm cache clean --force
- rm -rf node_modules
- npm install
- CI=false npm run deploy-app
artifacts: # defining build/ as an artifact
- 'build-artifact/**'
- step:
name: Deploy
script:
- apt-get update
- apt-get install ncftp
- ncftpput -v -u "$USERNAME" -p "$PASSWORD" -R $SERVER build 'build-artifact/*'
- echo Finished uploading build
它像这样工作得非常好,但是 ftp 上传大约需要 8 分钟,这太长了,因为使用 Bitbucket 的免费计划,我每个月只能使用管道功能 50 分钟。
似乎每个小文件的上传都需要很长时间。这就是为什么我认为上传单个 zip 文件可能会更高效。
所以我的问题是:它真的更快吗?以及如何压缩工件,将压缩文件上传到服务器并在那里解压缩?
谢谢你的帮助
解决方案
实际上,您应该考虑使用其他工具来上传文件,例如rsync
它具有一些有用的功能,例如数据压缩。它也只上传从以前的上传更改的文件,这也将加快上传速度。您可以使用rsync-deploy管道,例如:
script:
- pipe: atlassian/rsync-deploy:0.3.2
variables:
USER: 'ec2-user'
SERVER: '127.0.0.1'
REMOTE_PATH: '/var/www/build/'
LOCAL_PATH: 'build'
EXTRA_ARGS: '-z'
请注意-z
通过 EXTRA_ARGS 传递的选项。这将在传输文件时启用数据压缩。
推荐阅读
- asp.net - 如何在 ASP.net core 2.1 中正确继承 ApplicationUser 用户
- python - 避免在控制台中输出 python 异常(仅针对单个案例)
- angular - 使用 Promise 从 HTTP 拦截器返回请求对象
- jquery - 我怎样才能在 div 容器边缘直接使用这个 jQuery 滚动条?
- css - 在悬停时更改 FontAwesome 图标的字体颜色?
- react-native - 弹出的博览会反应本机应用程序需要博览会?
- python - 无法修改较大数据集中的项目
- python - 循环中的 list.append() 只能返回最终列表
- database - 2个子类之间可以有关系吗?
- python - Pyspark:在python中将所有压缩的csv合并为一个csv