Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Removed the setcap stuff from the iperf3 container. I pursued that based on the mDNS repeater container. I thought it was part of why this eventually started running, but no, it's a red herring. This cuts the running container size roughly in half. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
83694c340391f43d564852df8cff2371 |
User & Date: | tangent 2023-04-03 19:57:10 |
Context
2023-04-03
| ||
20:21 | Solved the ROS container start problem: it needs the /dev, /proc, /run *and* /sys mount points to be present, even when you're deploying a single static binary that doesn't access any of that. check-in: c4f08b8fc9 user: tangent tags: trunk | |
19:57 | Removed the setcap stuff from the iperf3 container. I pursued that based on the mDNS repeater container. I thought it was part of why this eventually started running, but no, it's a red herring. This cuts the running container size roughly in half. check-in: 83694c3403 user: tangent tags: trunk | |
02:28 | Typos check-in: 7c1577c36d user: tangent tags: trunk | |
Changes
Changes to iperf3/Dockerfile.
1 2 3 | # syntax=docker/dockerfile:1.0 FROM alpine:latest AS build ARG VERSION=master | | < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # syntax=docker/dockerfile:1.0 FROM alpine:latest AS build ARG VERSION=master RUN apk add --no-cache build-base git RUN git clone --depth 1 --branch ${VERSION} https://github.com/esnet/iperf RUN iperf/configure CFLAGS="-Os -s" --enable-static-bin RUN make -j12 FROM scratch COPY --from=build /src/iperf3 /bin/ COPY --from=build /tmp/ /tmp/ EXPOSE 5201/tcp 5201/udp ENTRYPOINT [ "/bin/iperf3" ] CMD [ "-s" ] |
Changes to iperf3/README.md.
1 2 | The [`Dockerfile`](/file/iperf3/Dockerfile) builds a single static binary of [ESNet’s `iperf3` tool][src] and sets it to run in server mode by | | | 1 2 3 4 5 6 7 8 9 10 | The [`Dockerfile`](/file/iperf3/Dockerfile) builds a single static binary of [ESNet’s `iperf3` tool][src] and sets it to run in server mode by default. Its small (0.2 MB) size makes it ideal for testing network performance on resource constrained MikroTik RouterOS boxes running the [optional container feature][mtdoc] added in ROS 7.4. As such, it’s built for both 32-bit and 64-bit ARM CPUs, but also for Intel platforms, because why not? See the [`Makefile`](/file/iperf3/Makefile) for details on building, configuring, and running this container. |
︙ | ︙ | |||
86 87 88 89 90 91 92 | ``` The tarball name will vary depending on the current version when you read this and the CPU type you need. Check your build directory. You can avoid giving the tarball name to “`make`”, but since that will build all four platform tarballs, this method saves you some time. | < < < | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | ``` The tarball name will vary depending on the current version when you read this and the CPU type you need. Check your build directory. You can avoid giving the tarball name to “`make`”, but since that will build all four platform tarballs, this method saves you some time. We’re using the `skopeo` tool from the Podman project to fix up some formatting issues in the image tarball which RouterOS is currently interolerant of, at least as of ROS 7.9rc1. **BEWARE:** This currently won’t work as-is on RouterOS. You can fix it by changing the `Dockerfile` to base the second stage on Alpine per the instructions in the next section before you get to the “`make`” step. |
︙ | ︙ | |||
113 114 115 116 117 118 119 | I have no idea why that’s necessary. There is no good reason for it other than to support the RouterOS “`/container shell`” command, which should be purely optional. The container proper doesn’t need anything Alpine provides; once we get through the first stage, we’re done with the need for anything OS-like. The second stage includes naught but two static binaries, with zero external dependencies. | | < < | 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | I have no idea why that’s necessary. There is no good reason for it other than to support the RouterOS “`/container shell`” command, which should be purely optional. The container proper doesn’t need anything Alpine provides; once we get through the first stage, we’re done with the need for anything OS-like. The second stage includes naught but two static binaries, with zero external dependencies. This hack isn’t necessary under Docker and Podman. <div id="this-space-left-blank-intentionally" style="height: 50em"></div> [mtdoc]: https://help.mikrotik.com/docs/display/ROS/Container [src]: https://github.com/esnet/iperf [WinBox]: https://mikrotik.com/download |