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