发现 GO 语言可以在本地 OS 上生成 Linux 可执行的 exe 文件,将 exe 文件上传到服务器就可以直接运行了,好方便啊。
其他语言都是怎么部署的?有没有代码部署黑科技分享一下?
其他语言都是怎么部署的?有没有代码部署黑科技分享一下?

1 thet Aug 1, 2019 php ftp 了解一下 |
2 finallyeva Aug 1, 2019 linux?exe? |
3 zkqiang Aug 1, 2019 exe................ |
4 Hanggi OP @finallyeva 就是可以直接在 Linux 上执行的文件。 |
6 zjyl1994 Aug 1, 2019 docker 解决一切问题 |
7 BCy66drFCvk1Ou87 Aug 1, 2019 via Android 是不是表达错误了? linux 运行不了 exe |
10 springmarker Aug 1, 2019 via Android C/C++不也是这样吗 |
11 BinRelay Aug 1, 2019 更可怕的是还支持各种稀奇古怪架构的 linux |
12 Hanggi OP @springmarker C/C++ 的话应用范围不太一样吧。例如:最常见的 Web 服务很少用。 |
13 zjsxwc Aug 1, 2019 脚本语言直接 git pull 部署,逃 |
14 springmarker Aug 1, 2019 @Hanggi #12 局限于 web 的话,其他语言解决方案都很成熟啊,大多只需要 runtime 就可以了,而且全平台运行。 比如 SpringBoot,只需要 java -jar web.jar 或者./web.jar start 就可以。 Docker 体积大的问题。。。。你可以多部署几个看看磁盘大小变大了多少的 |
15 saytesnake Aug 1, 2019 java -jar 呢... |
16 www5070504 Aug 1, 2019 交叉编译确实方便太多 脚本语言也还算方便吧 就是环境不好整 用 virtualenv 还是面临跨平台的问题 |
18 xpresslink Aug 1, 2019 非要这么说,脚本语言直接 SSH 到服务器上 VIM 就可搞定了。 不过现在都是 DevOps 理念了,任何语言都一样,docker 容器化部署,用 jenkins 自动打包了。 |
19 whypool Aug 1, 2019 npm start |
20 SuperMild Aug 1, 2019 别的语言说方便,都是把环境搭建好之后方便。Go 的方便,是完全不需要搭建环境。 因此,如果你强调“热更新”,那其他语言也很方便,甚至可能比 Go 更方便。 而如果你强调搭建运行环境 /首次运行,那 Go 是最方便的,其他语言最多只能和 Go 并列第一。 |
21 nowgoo Aug 1, 2019 content.replace(/exe/g, 'binary') |
22 RYAN0UP Aug 1, 2019 via Android @saytesnake 需要 jre,但是 go 打包好的不需要 go 环境,这点很爽 |
24 qq316107934 Aug 1, 2019 一句话总结:Go 支持交叉编译 |
26 lihongjie0209 Aug 1, 2019 带虚拟机的都很方便(除了 Python) |
27 bequt Aug 1, 2019 都可以直接生成 windows exe linux 可执行. go 确实舒服这点 |
28 kiddingU Aug 1, 2019 @Hanggi 多阶段构建了解一下,第一阶段,打出二进制包,第二阶段才是将打出的二进制包拷贝到运行环境, From golang:1.9-alpine as builder 第一阶段 COPY --from=builder 第二阶段 |
30 zjyl1994 Aug 1, 2019 docker 解决一切问题 @Hanggi 别上来就打包 Ubuntu 或者 CentOS 啊,Alpine 搞一下,也就大了 10 几 M,到哪里都跑起来了 |
31 Hanggi OP 啊哈,这样啊,我估计把 package 一起丢进去了,谢谢。 |
32 virusdefender Aug 1, 2019 等你的依赖中有 cgo 的时候就没这么简单了 |
33 hmxxmh Aug 1, 2019 windows 才是 exe,linux 是一个二进制文件 |
34 dhssingle Aug 1, 2019 .net core 也可以直接跑,不需要配置环境 |
35 agdhole Aug 1, 2019 dotnet core 路过 |
36 wysnylc Aug 1, 2019 那么哪个语言是麻烦的呢? |
37 blless Aug 1, 2019 via Android @virusdefender cgo 也还好 实在不行上 docker apline |
38 stevenbipt Aug 1, 2019 可能唯一的缺点就是编译以后体积会比较大吧~不过单文件打包确实挺爽的 |
42 lihongjie0209 Aug 1, 2019 @byteli #39 啥? java 需要安装依赖??? 一个 jar 包或者 war 包, 要什么依赖 |
43 oyjc Aug 1, 2019 dotnet publish -r win10-x64 /p:PublishSingleFile=true |
44 orm Aug 1, 2019 via iPhone java 最新的 graalvm 也可以把 java 编译成一个可执行文件 |
45 Torpedo Aug 1, 2019 没有比 php 更方便了吧 |
46 lhx2008 Aug 1, 2019 via Android 如果是首次部署,确实 go 方便。 如果是后续更新,那应该还是 python php 这种动态语言方便,甚至不用重启。 go 的话,每次编译和上传也挺浪费时间。java 只要把业务代码的 jar 传上去就可以了,依赖可以分开打包。便捷性上差不多。 |
47 sky101001 Aug 1, 2019 交叉编译是真的好用! |
49 Hanggi OP @wysnylc 就拿 python 或者 nodejs 为例,他们第一上传首先要有 python 或者 nodejs 环境,然后安装依赖,而这个过程是有可能不顺利的,比如版本不对,系统不兼容。 |
50 zgqq Aug 1, 2019 java 也很方便啊,为啥有些人觉得 java 就一定繁琐呢?感觉是没玩明白 |
51 Felldeadbird Aug 1, 2019 吓得我以为 linux 可以运行 exe 了。 |
52 z0ne Aug 1, 2019 目前项目主力也在用 go,主要是有几下优点符合自己需求: 1. 编译执行,可进行代码加密(虽然可逆向,但成本太高,个人感觉比各种 php 加密等安全) 2. 部署方便,正如 lz 所说,直接执行二进制 3. 高速低内存,多线程执行非常喜欢,也比 python 之类容易上手 |
53 auin Aug 1, 2019 Go 为了极致的工程便利性,也舍弃了不少东西,看未来的发展吧 |
54 SuperMild Aug 1, 2019 Java 真的有那么方便吗? Maven 或 Gradle 里一堆设置,第一次弄这东西时必然感觉麻烦。 而 Go 只要执行 go build 就可以了,不需要特别设置。因此还是 Go 稍稍方便一点。 |
55 zhang77555 Aug 2, 2019 java 开发现在都是提交代码就完事了吧, 自动构建已经非常成熟了, 一般项目从提交代码到自动部署 docker 容器也就分分钟吧,都不需要登录服务器. |
56 AllenBigBear Aug 2, 2019 最近在部署 Django 的筒子飘过。。。。部署部出血。。。 |
57 kppwp Aug 2, 2019 via iPhone 最近刚开始用 k8s 和 docker 部署 python 项目很方便 |
58 wupher Aug 2, 2019 个人以为: Go 的包管理工具不如 Maven 或者 Gradle |
59 likaka Aug 2, 2019 村里刚通网,linux 连 exe 都发明了吗 |
60 log4j Aug 2, 2019 ....那叫二进制可执行文件,不叫 exe,windows 用多了中毒了么。。。 |
61 hunter2015 Aug 2, 2019 村里刚通网,linux 连 exe 都发明了吗 |
62 leopku Aug 2, 2019 @Hanggi #9 肯定是你姿势不对。看看这个 https://v2ex.com/t/572815 docker 打完镜像才 7 兆多 |
63 ruoxie Aug 2, 2019 其实就是不需要运行时的环境 |
64 phpxiaowangzi Aug 2, 2019 说,是不是露怯了 |
65 leopku Aug 2, 2019 Unix/Linux 可执行文件全称 Executable and Linkable Format,简称 ELF。 |
66 simple2025 Aug 2, 2019 @lhx2008 py 不用重启怎么搞的?有 git 例子吗?大佬? |
67 mapleray Aug 2, 2019 |
69 nnnToTnnn Aug 2, 2019 从来没有听说过 liunx 有 exe 的。 其次,估计你没有走过流水线。。。。。。。。 |
72 lihongjie0209 Aug 2, 2019 @SuperMild #54 springboot 现在你还需要改 maven 的 xml?? |
73 MilkShake Aug 2, 2019 从来没有听说过 liunx 有 exe 的。 |
74 lihongjie0209 Aug 2, 2019 @Hanggi #49 1. 版本不对? 装 runtime 都不看版本的? 需要用到 python3, 装了一个 python2 这是谁的锅? 2. 系统不兼容? 不兼容你能用 apt/yum 装上我也是佩服, 哪怕你下载 binary 安装, 不看版本是谁的锅? |
76 Hanggi OP @lihongjie0209 我说的不好,但是同样的代码同样的流程,明明都照着做了,但就是出错的情况也是常有的。 |
77 SuperMild Aug 2, 2019 @lihongjie0209 springboot 受到大家欢迎,原因之一就是在简化发布、部署上做得很好,但这严格来说是一个框架 /库做得好,与语言本身的直接特性还有有区别的,Go 是随便换一个框架或者完全不用框架,都不影响其打包的方便性。 以及上面有很多人说 docker 使部署变得很方便,docker 受欢迎,也可侧面反映其实本来打部署流程是有点麻烦的,所以现在才会觉得 docker 带来了方便。 |
78 lihongjie0209 Aug 2, 2019 @Hanggi #76 要么是部署文档有问题, 要不是部署的人有问题 |
79 lihongjie0209 Aug 2, 2019 @SuperMild #77 类似 spring 或者 maven 这种事实标准,并且默认配置足够的话并不需要改任何配置就可以一键构建的 |
80 mandy0119 Aug 2, 2019 java -jar ........ |
81 T3RRY Aug 2, 2019 是很方便,除了 go server 也可以 caddy,很爽 |
82 skiy Aug 2, 2019 不就交叉编译嘛 |
83 userff Aug 2, 2019 搞了两天 gitlab ci 部署 docker python 项目太痛苦了。 gitlab runner docker in docker 有些坑。 |
84 haisi0525 Aug 2, 2019 exe,“ executable program,EXE File ”,可执行程序。不是.exe |
86 Vegetable Aug 2, 2019 Executable 也没错哦哈哈哈 |
87 dabaibai Aug 2, 2019 这么说,python 丢个文件上去也行啊 |
88 g9g9 Aug 2, 2019 微服务呀 |
89 GjriFeu Aug 2, 2019 依赖动态库又是另外一回事 |
90 echo1937 Aug 2, 2019 @SuperMild #77 jar/war/ear,差不多就这么三种形式,要么直接 java -jar,要么丢进外部容器,没有 SpringBoot 之前不也是这么干的吗 |
91 microkj Aug 2, 2019 C# core 不管是 build,项目依赖,docker 支持都非常的简洁,语法也优雅,就是用的人不多 |
92 useben Aug 2, 2019 确实方便,有时为了方便直接 scp 到测试环境,越过提交代码 cidi 环节。达到快速测试验证的目的~~~爽 |
93 wo642436249 Aug 2, 2019 via Android @thet 没有 php 环境你试试 |
94 byteli Aug 11, 2019 via Android @lihongjie0209 依赖 jdk 啊 |
96 no13bus Sep 16, 2019 部署的话,线上真正用的时候都是用写个部署脚本,不管是啥语言,最后都是自动化的,其实没啥区别 |