Giter VIP home page Giter VIP logo

Comments (19)

zhenorzz avatar zhenorzz commented on July 1, 2024 1

不是的,切换服务器类型,是指在服务器设置页面,编辑已有的服务器,修改OS字段的单选: linux / windows

看代码,确实有这种情况;
牛逼啊,兄弟;
用得比我还深入;

from goploy.

zhenorzz avatar zhenorzz commented on July 1, 2024

你牛逼!

from goploy.

zhenorzz avatar zhenorzz commented on July 1, 2024

方式1
sftp
-v 详细模式输出
--delefe 删除所有文件
--exclude=FILE 指定排除不需要传输的文件
--include=FILE 指定不排除而需要传输的文件
--exclude-regexp=REGEXP 排除正则表达式中匹配的文件
--include-regexp=REGEXP 不排除正则表达式匹配的文件
https://docs.goploy.cn/#/dependency/sftp

from goploy.

zhenorzz avatar zhenorzz commented on July 1, 2024

方式2:叫这个${AFTER_DEPLOY_FILENAME},文档没写,是我的问题。

from goploy.

xyzjl avatar xyzjl commented on July 1, 2024

方式1 sftp -v 详细模式输出 --delefe 删除所有文件 --exclude=FILE 指定排除不需要传输的文件 --include=FILE 指定不排除而需要传输的文件 --exclude-regexp=REGEXP 排除正则表达式中匹配的文件 --include-regexp=REGEXP 不排除正则表达式匹配的文件 https://docs.goploy.cn/#/dependency/sftp

这个我看过官方文档了,我试了下通配符好像不好使,一个个exclude太麻烦,就尝试别的方式了。
sftp命令不是很熟悉,正则式当时没注意到,倒是可以再尝试一下。

from goploy.

zhenorzz avatar zhenorzz commented on July 1, 2024

方式3: 存在疑问,代码上写的是,只有bat的时候才用cmd,不清楚你是怎么出现的这个bug,详细描述一下。

from goploy.

zhenorzz avatar zhenorzz commented on July 1, 2024

方式1 sftp -v 详细模式输出 --delefe 删除所有文件 --exclude=FILE 指定排除不需要传输的文件 --include=FILE 指定不排除而需要传输的文件 --exclude-regexp=REGEXP 排除正则表达式中匹配的文件 --include-regexp=REGEXP 不排除正则表达式匹配的文件 https://docs.goploy.cn/#/dependency/sftp

这个我看过官方文档了,我试了下通配符好像不好使,一个个exclude太麻烦,就尝试别的方式了

我也觉得,确实有点麻烦。

from goploy.

xyzjl avatar xyzjl commented on July 1, 2024

方式3: 存在疑问,代码上写的是,只有bat的时候才用cmd,不清楚你是怎么出现的这个bug,详细描述一下。

我尝试切换服务器的linux/windows类型,观察构建日志里面的cmd/bash是正常的,但是观察后台日志(tail -f goploy.log) 好像没有及时刷新日志内容,可能是我之前通过看日志文件查问题,看到的并不是最新的日志,这个cmd/bash的问题确实不存在。

为啥日志不会实时刷新啊,这算是另一个问题?
关于这个问题,有几个线索,但是无法确定:

  1. 不是第一次观察到日志不刷新,猜测可能是我不断的尝试不同配置方式的构建,在有些配置下,构建的线程卡死未退出之类的
  2. 日志文件不刷新之后,后面再进行新的构建都不会再刷新,重启goploy服务之后,日志刷新正常,tail -f可观察到

另外,切换服务器类型确实会导致构建失败,我目前是方式3的配置,但是将服务器设置为linux类型,可以构建成功,切换成windows服务器类型之后会构建失败,排查到原因:
服务器为linux时:ssh exec: bash /path/to/my.sh && rm -f /path/to/my.sh
服务器为windows时:ssh exec: bash \\path\\to\\my.sh && rm -f \\path\\to\\my.sh

\\path\\to\\my.sh 这个脚本路径无法找到,导致了这个问题,因为git bash下不识别\路径

from goploy.

zhenorzz avatar zhenorzz commented on July 1, 2024

不会实时刷新,这个问题,不存在吧,我是writeFIle的。

from goploy.

zhenorzz avatar zhenorzz commented on July 1, 2024

线程卡死未退出,有些命令会卡死,例如直接 启动 程序,没有使用 nohup &,导致脚本一直在前台运行,就会这样。

from goploy.

zhenorzz avatar zhenorzz commented on July 1, 2024

线程卡死未退出,有些命令会卡死,例如直接 启动 程序,没有使用 nohup &,导致脚本一直在前台运行,就会这样。

这个我可以加个脚本运行超时参数。

from goploy.

zhenorzz avatar zhenorzz commented on July 1, 2024

你切换服务器类型,是指选择不同服务器吗?

from goploy.

xyzjl avatar xyzjl commented on July 1, 2024

不是的,切换服务器类型,是指在服务器设置页面,编辑已有的服务器,修改OS字段的单选: linux / windows

from goploy.

xyzjl avatar xyzjl commented on July 1, 2024

线程卡死未退出,有些命令会卡死,例如直接 启动 程序,没有使用 nohup &,导致脚本一直在前台运行,就会这样。

这个我可以加个脚本运行超时参数。

好的,谢谢作者。我后续再观察一下日志的情况

from goploy.

zhenorzz avatar zhenorzz commented on July 1, 2024

当你服务器类型是windows时,你的部署路径填的什么?
C:\path\to\project
还是
C:/path/to/project
还是
/C/path/to/project
还是
/path/to/project

from goploy.

xyzjl avatar xyzjl commented on July 1, 2024

我的部署路径,是按照需要远程执行的脚本类型来填写的

目前使用方式3(git bash),服务器配置为linux(实际为windows),git bash会将C:\、D:\之类的磁盘驱动器映射成/c/、/d/,所以部署路径是/d/path/to/project这种形式

之前使用方式2(cmd),服务器配置为windows(实际为windows),使用的部署路径是D:\path\to\project这种形式,这种形式也是能传输成功的,只是因为bat脚本执行的时候有奇怪的问题(与当前问题无关),才换成方式3的

我的建议就是,不管是运行bash还是cmd,在填写了远程执行脚本的情况下,就优先使用部署路径进行直接赋值(或者也可以按脚本的类型来自动进行路径转换),其次才按照OS类型进行路径转换

from goploy.

xyzjl avatar xyzjl commented on July 1, 2024

突然想到一个问题,按我刚刚说的方式,如果有人想在linux下执行powershell脚本,似乎又会出问题

from goploy.

zhenorzz avatar zhenorzz commented on July 1, 2024

我想到办法了,就是检测你的部署路径分隔符,然后我用你填的分隔符就行,这样你自己就能决定是什么。

from goploy.

xyzjl avatar xyzjl commented on July 1, 2024

更新了最新的1.16.3, 上文中的路径拼接的问题已经解决了,不过我将服务器类型切换为windows(实际为windows)还是构建失败了,原因是after-deploy脚本删除时使用的del命令无法识别。

我觉得这个不是goploy的问题,因为我的使用方式,不管是使用/拼接路径,还是使用git bash这种终端,毫无疑问都是linux的用法,并没有windows的痕迹,这种情况下,我觉得将服务器类型设置为linux反而更加贴切。可能之前啃bat的配置方式有点魔怔了,思路没走出来。

另外,之前的日志不刷新的问题也可以先忽略,我稍微对goploy进行了一点”压力测试“,没有出现这种情况,可能还是跟我之前的操作有关系(goployweb端操作构建、重置、初始化+服务器后台kill之类的,自己也有点混乱了)

感谢作者的耐心解答,这个问题我关闭咯~

from goploy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.