Ptunnel for Alpine

最近更新真是越来越。。。。算了,今晚解决了一个历史遗留问题——以前构建Ptunnel都是依赖Debian、Ubuntu这些镜像。体积大,耗流量。之所以没有基于Alpine是因为这份代码是十多年前的,在Alpine下构建不能通过,而我又不懂C语言,所以就搁置了。然后今晚抱着玩玩的心态,改了一下源码(瞎改)。。。。

结果,居然编译通过了,通过了,过了,了。。。。

主要的依赖可以一个个慢慢摸索,其中“艰辛”就不说了,主要麻烦是一个名为unistd.h的文件不能引入,然后查了不少资料,原来改名了,现在叫做asm/unistd.h,而以前叫做sys/unistd.h,解决了这个问题,其他依赖再理一理就没什么大问题了(虽然编译过程还有一个警告,但是我们“无视警告”,笑)。

最后来个小贴士(以前好像说过):
Alpine构建可以使用--virtual参数指定构建过程需要安装的包,这样构建的镜像体积会小很多。
举个例子:

RUN apk add build-base
RUN apk del build-base

上面这种方式看似是删除了build-base这个包,但并不会减少镜像体积,原因很简单,安装过程被记录保存下来了(Docker原理以前讲过,省些字数)。

使用下面的方式:

RUN apk add --virtual BUILD build-base && \
    apk del BUILD

build-base这个包不会被记录下来,可以减少150MB的体积呐~

同一个软件第一种方式构建体积有160MB,第二种方式只有9MB,压缩传输体积更加小。

REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
zuolan/ptunnel                  local               0cc925b779da        3 minutes ago       9.23 MB
<none>                          <none>              36a25dbadd2b        6 minutes ago       160 MB

最后附上修改后 Ptunnel 源代码:
https://github.com/izuolan/dockerfiles

部分 Dockerfile:

FROM alpine:edge
COPY . /build
WORKDIR /build
RUN echo '@edge http://nl.alpinelinux.org/alpine/edge/main' >> /etc/apk/repositories && \
    echo '@community http://nl.alpinelinux.org/alpine/edge/community' >> /etc/apk/repositories && \
    echo '@testing http://nl.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories && \
    apk add --no-cache \
    libpcap-dev \
    linux-headers && \
    apk add --no-cache --virtual BUILD build-base && \
    make && make install && \
    apk del BUILD

如何使用这个玩意?管理Ptunnel的脚本:https://github.com/izuolan/Pshell

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,726评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • docker基本概念 1. Image Definition 镜像 Image 就是一堆只读层 read-only...
    慢清尘阅读 8,848评论 1 21
  • 世界上人口千千万,遇见的几率小之又小,可命运就是让我们相遇、相知、相惜、相离。我相信自有它的安排。 嘿...
    娜先生阅读 940评论 3 2
  • 俗话说:"书中自有黄金屋,书中自有颜如玉。"文字是历史的载体,许多前人的智慧大多都被记录在书中,我们后人若是碰到...
    Fivemooncake话梅阅读 336评论 0 0