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