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