From 8d94c7ba74487631ef4f1d72b533fc6ed617c8c8 Mon Sep 17 00:00:00 2001 From: Tech0ne Date: Mon, 23 Jun 2025 15:12:53 +0200 Subject: [PATCH 1/5] feat: added docker support for both iodined (Dockerfile.server) and iodine (Dockerfile.client) --- Dockerfile.client | 31 +++++++++++++++++++++++++++++++ Dockerfile.server | 31 +++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 Dockerfile.client create mode 100644 Dockerfile.server diff --git a/Dockerfile.client b/Dockerfile.client new file mode 100644 index 0000000..ee3ac2c --- /dev/null +++ b/Dockerfile.client @@ -0,0 +1,31 @@ +############## +# +# @ +# @ +# @ @ @ +# +############## + +FROM alpine:3.22.0 + +RUN apk update +RUN apk add --no-cache \ + gcc \ + git \ + make \ + pkgconfig \ + zlib-dev + +WORKDIR /app/ + +RUN git clone https://github.com/yarrick/iodine /app/ + +RUN make + +# iodine require /dev/net/tun from the host. +# run the container with --device /dev/net/tun --cap-add=NET_ADMIN to allow it + +# usage: [sudo] docker run -it --rm iodine -f -r 192.168.0.1 -P "password" test.com + +ENTRYPOINT [ "/app/bin/iodine" ] +CMD [ "-h" ] diff --git a/Dockerfile.server b/Dockerfile.server new file mode 100644 index 0000000..5f0b313 --- /dev/null +++ b/Dockerfile.server @@ -0,0 +1,31 @@ +############## +# +# @ +# @ +# @ @ @ +# +############## + +FROM alpine:3.22.0 + +RUN apk update +RUN apk add --no-cache \ + gcc \ + git \ + make \ + pkgconfig \ + zlib-dev + +WORKDIR /app/ + +RUN git clone https://github.com/yarrick/iodine /app/ + +RUN make + +# iodine require /dev/net/tun from the host. +# run the container with --device /dev/net/tun --cap-add=NET_ADMIN to allow it + +# usage: [sudo] docker run -it --rm iodined -f 10.0.0.1 -P "password" test.com + +ENTRYPOINT [ "/app/bin/iodined" ] +CMD [ "-h" ] From b6b5f29416023e0b18d8a21db0ea6f7be04a6cfe Mon Sep 17 00:00:00 2001 From: Tech0ne Date: Mon, 23 Jun 2025 15:16:58 +0200 Subject: [PATCH 2/5] fix: fixed in-file usage --- Dockerfile.client | 5 ++++- Dockerfile.server | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Dockerfile.client b/Dockerfile.client index ee3ac2c..eb9a78f 100644 --- a/Dockerfile.client +++ b/Dockerfile.client @@ -25,7 +25,10 @@ RUN make # iodine require /dev/net/tun from the host. # run the container with --device /dev/net/tun --cap-add=NET_ADMIN to allow it -# usage: [sudo] docker run -it --rm iodine -f -r 192.168.0.1 -P "password" test.com +# usage: [sudo] docker run -it --rm \ +# --device /dev/net/tun \ +# --cap-add=NET_ADMIN \ +# iodine -f -r 192.168.0.1 -P "password" test.com ENTRYPOINT [ "/app/bin/iodine" ] CMD [ "-h" ] diff --git a/Dockerfile.server b/Dockerfile.server index 5f0b313..a1d1d72 100644 --- a/Dockerfile.server +++ b/Dockerfile.server @@ -25,7 +25,10 @@ RUN make # iodine require /dev/net/tun from the host. # run the container with --device /dev/net/tun --cap-add=NET_ADMIN to allow it -# usage: [sudo] docker run -it --rm iodined -f 10.0.0.1 -P "password" test.com +# usage: [sudo] docker run -it --rm \ +# --device /dev/net/tun \ +# --cap-add=NET_ADMIN \ +# iodined -f 10.0.0.1 -P "password" test.com ENTRYPOINT [ "/app/bin/iodined" ] CMD [ "-h" ] From 01a1156ad742606b24d6d46d5747e75aa41f3411 Mon Sep 17 00:00:00 2001 From: Tech0ne Date: Tue, 1 Jul 2025 09:49:58 +0200 Subject: [PATCH 3/5] feat: moved base image from alpine to ubuntu; fixed build issues --- Dockerfile.client | 27 +++++++++++++++++++++------ Dockerfile.server | 25 +++++++++++++++++++------ 2 files changed, 40 insertions(+), 12 deletions(-) diff --git a/Dockerfile.client b/Dockerfile.client index eb9a78f..23e0a01 100644 --- a/Dockerfile.client +++ b/Dockerfile.client @@ -6,19 +6,34 @@ # ############## -FROM alpine:3.22.0 +# FROM alpine:3.22.0 +# +# RUN apk update +# RUN apk add --no-cache \ +# gcc \ +# git \ +# linux-headers \ +# make \ +# musl-dev \ +# pkgconfig \ +# zlib-dev -RUN apk update -RUN apk add --no-cache \ +FROM ubuntu:24.04 + +RUN apt-get update + +RUN apt-get install -y \ gcc \ git \ + libz-dev \ make \ - pkgconfig \ - zlib-dev + pkg-config + +RUN apt-get clean WORKDIR /app/ -RUN git clone https://github.com/yarrick/iodine /app/ +COPY . /app/ RUN make diff --git a/Dockerfile.server b/Dockerfile.server index a1d1d72..41de5b3 100644 --- a/Dockerfile.server +++ b/Dockerfile.server @@ -6,19 +6,32 @@ # ############## -FROM alpine:3.22.0 +# FROM alpine:3.22.0 +# +# RUN apk update +# RUN apk add --no-cache \ +# gcc \ +# make \ +# musl-dev \ +# pkgconfig \ +# zlib-dev -RUN apk update -RUN apk add --no-cache \ +FROM ubuntu:24.04 + +RUN apt-get update + +RUN apt-get install -y \ gcc \ git \ + libz-dev \ make \ - pkgconfig \ - zlib-dev + pkg-config + +RUN apt-get clean WORKDIR /app/ -RUN git clone https://github.com/yarrick/iodine /app/ +COPY . /app/ RUN make From ea7ffdd1ef4b51594b3b2b4cfced2302b206fa9b Mon Sep 17 00:00:00 2001 From: Tech0ne Date: Fri, 18 Jul 2025 09:41:19 +0200 Subject: [PATCH 4/5] feat: added steps to build. moved Dockerfiles to a "docker" directory (changes the build command !) --- Dockerfile.client => docker/Dockerfile.client | 22 +++++++------------ Dockerfile.server => docker/Dockerfile.server | 20 +++++++---------- 2 files changed, 16 insertions(+), 26 deletions(-) rename Dockerfile.client => docker/Dockerfile.client (68%) rename Dockerfile.server => docker/Dockerfile.server (73%) diff --git a/Dockerfile.client b/docker/Dockerfile.client similarity index 68% rename from Dockerfile.client rename to docker/Dockerfile.client index 23e0a01..a388962 100644 --- a/Dockerfile.client +++ b/docker/Dockerfile.client @@ -6,19 +6,7 @@ # ############## -# FROM alpine:3.22.0 -# -# RUN apk update -# RUN apk add --no-cache \ -# gcc \ -# git \ -# linux-headers \ -# make \ -# musl-dev \ -# pkgconfig \ -# zlib-dev - -FROM ubuntu:24.04 +FROM ubuntu:24.04 AS builder RUN apt-get update @@ -37,6 +25,8 @@ COPY . /app/ RUN make +# build command (at repo root): [sudo] docker build -t iodine -f docker/Dockerfile.client . + # iodine require /dev/net/tun from the host. # run the container with --device /dev/net/tun --cap-add=NET_ADMIN to allow it @@ -45,5 +35,9 @@ RUN make # --cap-add=NET_ADMIN \ # iodine -f -r 192.168.0.1 -P "password" test.com -ENTRYPOINT [ "/app/bin/iodine" ] +FROM ubuntu:24.04 + +COPY --from=0 /app/bin/iodine /iodine + +ENTRYPOINT [ "/iodine" ] CMD [ "-h" ] diff --git a/Dockerfile.server b/docker/Dockerfile.server similarity index 73% rename from Dockerfile.server rename to docker/Dockerfile.server index 41de5b3..3289c10 100644 --- a/Dockerfile.server +++ b/docker/Dockerfile.server @@ -6,17 +6,7 @@ # ############## -# FROM alpine:3.22.0 -# -# RUN apk update -# RUN apk add --no-cache \ -# gcc \ -# make \ -# musl-dev \ -# pkgconfig \ -# zlib-dev - -FROM ubuntu:24.04 +FROM ubuntu:24.04 AS builder RUN apt-get update @@ -35,6 +25,8 @@ COPY . /app/ RUN make +# build command (at repo root): [sudo] docker build -t iodined -f docker/Dockerfile.server . + # iodine require /dev/net/tun from the host. # run the container with --device /dev/net/tun --cap-add=NET_ADMIN to allow it @@ -43,5 +35,9 @@ RUN make # --cap-add=NET_ADMIN \ # iodined -f 10.0.0.1 -P "password" test.com -ENTRYPOINT [ "/app/bin/iodined" ] +FROM ubuntu:24.04 + +COPY --from=0 /app/bin/iodined /iodined + +ENTRYPOINT [ "/iodined" ] CMD [ "-h" ] From 386a2b9f77bec8a67f54a85d33614d6ba7b0ea64 Mon Sep 17 00:00:00 2001 From: Tech0ne Date: Fri, 18 Jul 2025 09:43:16 +0200 Subject: [PATCH 5/5] fix: removed useless AS tag --- docker/Dockerfile.client | 2 +- docker/Dockerfile.server | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile.client b/docker/Dockerfile.client index a388962..dd8e1f1 100644 --- a/docker/Dockerfile.client +++ b/docker/Dockerfile.client @@ -6,7 +6,7 @@ # ############## -FROM ubuntu:24.04 AS builder +FROM ubuntu:24.04 RUN apt-get update diff --git a/docker/Dockerfile.server b/docker/Dockerfile.server index 3289c10..98aab0a 100644 --- a/docker/Dockerfile.server +++ b/docker/Dockerfile.server @@ -6,7 +6,7 @@ # ############## -FROM ubuntu:24.04 AS builder +FROM ubuntu:24.04 RUN apt-get update