├── .github └── workflows │ └── cennso-release.yaml ├── Dockerfile └── README.md /.github/workflows/cennso-release.yaml: -------------------------------------------------------------------------------- 1 | name: Cennso Release of nettools 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | push-to-cur: 8 | name: "cur-release" 9 | runs-on: [ubuntu-24.04] 10 | steps: 11 | - name: Checkout 12 | uses: actions/checkout@v4 13 | - name: Login to Registry 14 | uses: docker/login-action@v3 15 | with: 16 | registry: ${{ secrets.CUR_REGISTRY_DOMAIN }} 17 | username: ${{ secrets.CUR_REGISTRY_USERNAME }} 18 | password: ${{ secrets.CUR_REGISTRY_PASSWORD }} 19 | - name: Set up Docker Buildx 20 | uses: docker/setup-buildx-action@v3 21 | - name: Docker meta 22 | id: meta 23 | uses: docker/metadata-action@v5 24 | with: 25 | images: | 26 | ${{ secrets.CUR_REGISTRY_DOMAIN }}/${{ secrets.CUR_PROJECT_NAME }} 27 | tags: | 28 | type=semver,pattern={{raw}} 29 | flavor: | 30 | latest=false 31 | prefix= 32 | suffix= 33 | - name: Build and push 34 | uses: docker/build-push-action@v5 35 | with: 36 | context: . 37 | file: ./Dockerfile 38 | platforms: linux/amd64 39 | push: true 40 | tags: | 41 | ${{ steps.meta.outputs.tags }} 42 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.22 AS builder 2 | 3 | WORKDIR /workspace 4 | 5 | RUN apk add --no-cache --update \ 6 | linux-headers \ 7 | alpine-sdk \ 8 | coreutils \ 9 | bash \ 10 | git \ 11 | flex \ 12 | bison 13 | 14 | RUN git clone https://github.com/netsniff-ng/netsniff-ng.git 15 | 16 | WORKDIR /workspace/netsniff-ng 17 | RUN git checkout v0.6.9 18 | RUN mkdir /etc/netsniff-ng && cp trafgen_stddef.h /etc/netsniff-ng 19 | RUN ./configure && make && mkdir /usr/local/sbin && make install 20 | 21 | FROM alpine:3.22 22 | 23 | LABEL org.label-schema.description="Useful network related tools" 24 | LABEL org.label-schema.vendor=travelping.com 25 | LABEL org.label-schema.copyright=travelping.com 26 | LABEL org.label-schema.version=1.14.0 27 | 28 | COPY --from=builder /usr/local/sbin/bpfc /usr/local/sbin/bpfc 29 | COPY --from=builder /usr/local/sbin/netsniff-ng /usr/local/sbin/netsniff-ng 30 | COPY --from=builder /usr/local/sbin/trafgen /usr/local/sbin/trafgen 31 | 32 | RUN apk add --no-cache --update \ 33 | bash \ 34 | bird \ 35 | conntrack-tools \ 36 | coreutils \ 37 | curl \ 38 | drill \ 39 | iperf3 \ 40 | iproute2 \ 41 | iptables \ 42 | iputils \ 43 | ip6tables \ 44 | keepalived \ 45 | net-tools \ 46 | nftables \ 47 | socat \ 48 | ethtool \ 49 | mtr \ 50 | tcpdump \ 51 | busybox-extras \ 52 | lz4 zstd 53 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Nettools 2 | 3 | A simple, small, alpine-based Docker image with some handy networking tools 4 | installed: 5 | 6 | - bpfc 7 | - bird3 8 | - curl 9 | - drill 10 | - ethtool 11 | - iperf3 12 | - iproute2 13 | - iptables 14 | - mtr 15 | - netsniff-ng 16 | - nftables 17 | - socat 18 | - tcpdump 19 | - telnet 20 | - trafgen 21 | 22 | Please see the Dockerfile for a complete list of tools. 23 | --------------------------------------------------------------------------------