1
wfhtqp 2020-12-24 14:56:00 +08:00
就看你的镜像里包不包含源码
|
2
manami 2020-12-24 14:57:42 +08:00
给了别人的东西安全都是没保证的,看你的代码值不值钱了
|
3
jones2000 2020-12-24 15:02:34 +08:00
编程成 2 进制执行文件发布。
|
7
x66 2020-12-24 15:10:45 +08:00
如果你在外面 build 好了之后,Dockerfile 里面只做 ADD 制成品的话是不会泄露的。
当然 artifact 可以反编译这又是另一回事了。 |
8
ixx 2020-12-24 15:11:50 +08:00
dockerfile 构建没问题 近一点看你的 dockerfile 里管理写的 有没有将源码 copy 到镜像里 比如 go 项目你只把编译后的产出复制到镜像里 那镜像中是不会有源码的
|
9
ixx 2020-12-24 15:13:10 +08:00
@ixx #8 dockerfile 构建没问题 重点看你的 dockerfile 里怎么写的 有没有将源码 copy 到镜像里 比如 go 项目你只把编译后的产出复制到镜像里 那镜像中是不会有源码的 如果直接复制源码到镜像进执行 那就不行了 几层构建都不行
|
10
xuanbg 2020-12-24 15:19:52 +08:00
2 进制也能反汇编。总之,东西到了人家手里,就不受你的控制啦。安全?保密?不存在的!
|
11
zoharSoul 2020-12-24 15:58:22 +08:00
这个问题与 docker 无关
|
12
RudyS 2020-12-24 16:11:49 +08:00
只有 2 进制泄漏难度大些,但也不是不可能。
|
13
index90 2020-12-24 16:34:27 +08:00
二阶段构建不会
|
14
namelosw 2020-12-24 16:38:57 +08:00 via iPad
你没说你的技术栈和你具体怎么做的。脚本一般明文,字节码一般比较好反编译,二进制比较难。还有就是 ignore 掉该 ignore 的
|
15
index90 2020-12-24 16:41:46 +08:00
话说个人觉得多阶段构建,按照 docker 目前给出的功能非常鸡肋。
1. 没有编译缓存( layer 缓存不算) 2. 多阶段构建的中间产物不好清理,经常导致构建机爆磁盘 3. dockerfile 中构建说是为了确保一致性,但软件制品质量是通过测试保证的,只要确保在流水线上二进制程序与容器打包产出,没有必要在 dockerfile 中构建 4. 可以在 builder 镜像中构建,然后在组装到输出镜像 |
16
whileFalse 2020-12-24 17:15:44 +08:00
好歹说语言啊
|
17
wangritian 2020-12-24 17:17:54 +08:00
二阶构建 只 copy 可执行程序 不会暴露源码
|
18
draguo 2020-12-24 17:57:31 +08:00
跟盗版游戏一样,要是收益足够高就能破解
|
19
Suddoo 2020-12-24 18:04:56 +08:00
只 ADD 可执行文件,问题应该不大吧
|
20
mmrx 2020-12-24 18:20:49 +08:00 1
核心的、值钱的逻辑建议放到你的服务上,docker 内的代码可以做个转发
接口做好认证啥的,这样即使别人拿到源码也不会拿到你的核心竞争力 |
21
felixcode 2020-12-24 18:26:01 +08:00
这边在问源码会不会泄漏,那边在答二进制会不会被反编译 /破解。
|
22
julyclyde 2020-12-25 10:00:58 +08:00
你这个提问,让我感觉
你其实本来就知道会泄露,只是想来追求心里安慰的 |
23
frandy 2020-12-25 10:15:30 +08:00
1.会
2.看语言,一些编译成二进制的语言逆向比较困难,像 java 这种编译成字节码的,如果没有做混淆和加固,就很容易。 |
24
leekafai 2020-12-25 10:30:19 +08:00
合同限制
|