ooclab / otunnel

peer-to-peer tunnel tool
MIT License
240 stars 57 forks source link

关于在Alpine中运行的问题 #7

Closed fanvinga closed 6 years ago

fanvinga commented 7 years ago

我最近在尝试将Otunnel封装到基于Alpine的docker中.但遇到无法执行的问题.把Otunnel linux amd64 的64位版本复制到docker内部进去执行.会导致not fund.换用bash执行提示无法执行二进制文件.基础镜像换成debian就没问题.请问开发者有打算研究下怎么在alpine里面运行otunnel吗.alpine连v2ray都可以跑起来.同样based on golang

gwind commented 7 years ago

主要是编译问题,你参考下 精简你的 docker 映像 , golang 的程序非常容易编译为静态,因此 scratch 都可以, alpine image 还有大小 :-)

fanvinga commented 7 years ago

高三有点忙😂😂七点多才看到邮件.我编译了一个静态版本的.还是用alpine build起来了.scrach没有sh不是很方便.有时想exec进去都不行.你可以看看我仓库:) github.com/fanvinga/docker-otunnel hub.docker.com/r/fanvinga/docker-otunnel

gwind commented 7 years ago

提交到 docker hub 不错, 不过可以分为 otunnel-client , otunnel-server 测试

但话说回来了,除了docker 管理daemon, restart program, 集群部署等,好像也没必要把一个单文件的静态二进制放到 docker image 里。

高三! 我大三才开始学习 Linux , 呵呵

fanvinga commented 7 years ago

有个工具玩docker非常方便.叫做HyperApp.之前国区被下架了.现在外区才有的下载.用这个软件来启动/管理docker.以及fq啊各种软件安装非常方便.所以我才会把服务端封起来放到hub上面.客户端的话直接下载二进制文件跑就是了. 其实我是HyperApp用户群的管理所以安利一下🌝群里现在2400+人了😂 https://t.me/hyperapp

fanvinga commented 7 years ago

我在尝试把编译这个步骤放到dockerfile里面.这样就不需要手动编译出静态库版本了.只是在alpine里面编译好像挺容易出现问题的.我编译的时候遇到ld找不到几个.o模块的问题.晚点回去再debug一下.其实最好是你能直接发布静态版本的release😂😂

gwind commented 7 years ago

Telegram 我用的比较少 :smiley: 比较懒,用的 gox 自动编译各平台版本,static release 各个平台不一样,就没有提供静态release 你用 build-by-docker.sh 就可以编译静态的了, README我已经更新

fanvinga commented 7 years ago

刚看见readme里面静态编译的步骤.go build的方法你好像没有讲 go get第三方库啊😂😂

gwind commented 7 years ago

已经使用 glide 管理依赖包,所有依赖包放在 vendor 里。 更新 build 说明及README :smile:

fanvinga commented 7 years ago

👌