From f85ffa6c219ec53731e49824f2f5b2dfcad9375c Mon Sep 17 00:00:00 2001 From: Merith Date: Thu, 5 Jun 2025 13:16:45 -0700 Subject: [PATCH 1/9] Attemtp winbox v4 --- Dockerfile | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1e7213f..045e2cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,19 @@ +FROM alpine:latest as builder + +RUN apk add --no-cache unzip wget +RUN wget -O /tmp/WinBox_Linux.zip https://download.mikrotik.com/routeros/winbox/4.0beta22/WinBox_Windows.zip && \ + unzip /tmp/WinBox_Linux.zip -d /tmp/winbox && \ + + wget -O /tmp/upx.tar.xz https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-amd64_linux.tar.xz && \ + tar -xf /tmp/upx.tar.xz -C /tmp && \ + mv /tmp/winbox/WinBox.exe /WinBox.exe && \ + /tmp/upx-5.0.1-amd64_linux/upx /WinBox.exe + FROM git.merith.xyz/gns3/base-vnc:latest RUN apk add --no-cache wine wget -# Pre-download Winbox -RUN wget -O /winbox64.exe https://download.mikrotik.com/routeros/winbox/3.42/winbox64.exe +COPY --from=builder /WinBox.exe /WinBox.exe # Preload Wine Mono RUN mkdir -p /usr/share/wine/mono && \ @@ -12,4 +22,4 @@ RUN mkdir -p /usr/share/wine/mono && \ wine msiexec /i /usr/share/wine/mono/wine-mono.msi /qn COPY ./entrypoint.sh /entrypoint.sh -RUN chmod +x /entrypoint.sh +RUN chmod +x /entrypoint.sh \ No newline at end of file From 0646385984ce178ab9fef67f30ab75c27be96ee7 Mon Sep 17 00:00:00 2001 From: Merith Date: Thu, 5 Jun 2025 13:22:34 -0700 Subject: [PATCH 2/9] v4 buildfile --- .forgejo/workflows/build-on-commit_v4.yml | 47 +++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 .forgejo/workflows/build-on-commit_v4.yml diff --git a/.forgejo/workflows/build-on-commit_v4.yml b/.forgejo/workflows/build-on-commit_v4.yml new file mode 100644 index 0000000..c0e3365 --- /dev/null +++ b/.forgejo/workflows/build-on-commit_v4.yml @@ -0,0 +1,47 @@ +name: Build Docker Image on Commit v4 + +on: + push: + branches: + - winbox4 + tags: + - '!' # Exclude tags + +jobs: + build-and-publish: + runs-on: docker-builder + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set REPO_VARS + id: repo-url + run: | + echo "REPO_HOST=$(echo "${{ github.server_url }}" | sed 's~http[s]*://~~g')" >> $GITHUB_ENV + echo "REPO_PATH=${{ github.repository }}" >> $GITHUB_ENV + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + with: + driver: docker-container + driver-opts: | + network=host + + - name: Login to OCI registry + run: | + echo "${{ secrets.OCI_TOKEN }}" | docker login $REPO_HOST -u "${{ secrets.OCI_USER }}" --password-stdin + + - name: Build and push multi-arch Docker images + run: | + docker buildx build \ + --platform linux/amd64 \ + --tag $REPO_HOST/$REPO_PATH:${{ github.sha }} \ + --tag $REPO_HOST/$REPO_PATH:nightly-v4 \ + --push \ + . + + - name: Cleanup + run: | + docker buildx prune -f + docker logout $REPO_HOST \ No newline at end of file From 5229885c7f17c0ace406d9efaea40d1346cef559 Mon Sep 17 00:00:00 2001 From: Merith Date: Thu, 5 Jun 2025 14:20:48 -0700 Subject: [PATCH 3/9] 0% alcolhol --- Dockerfile | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 045e2cd..f318d09 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,25 +1,23 @@ FROM alpine:latest as builder RUN apk add --no-cache unzip wget -RUN wget -O /tmp/WinBox_Linux.zip https://download.mikrotik.com/routeros/winbox/4.0beta22/WinBox_Windows.zip && \ +RUN wget -O /tmp/WinBox_Linux.zip https://download.mikrotik.com/routeros/winbox/4.0beta22/WinBox_Linux.zip && \ unzip /tmp/WinBox_Linux.zip -d /tmp/winbox && \ wget -O /tmp/upx.tar.xz https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-amd64_linux.tar.xz && \ tar -xf /tmp/upx.tar.xz -C /tmp && \ - mv /tmp/winbox/WinBox.exe /WinBox.exe && \ - /tmp/upx-5.0.1-amd64_linux/upx /WinBox.exe + mv /tmp/winbox/WinBox /WinBox && \ + /tmp/upx-5.0.1-amd64_linux/upx /WinBox FROM git.merith.xyz/gns3/base-vnc:latest RUN apk add --no-cache wine wget -COPY --from=builder /WinBox.exe /WinBox.exe +COPY --from=builder /WinBox /WinBox -# Preload Wine Mono -RUN mkdir -p /usr/share/wine/mono && \ - wget https://dl.winehq.org/wine/wine-mono/9.0.0/wine-mono-9.0.0-x86.msi -O /usr/share/wine/mono/wine-mono.msi && \ - wineboot --init && \ - wine msiexec /i /usr/share/wine/mono/wine-mono.msi /qn +RUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r1/glibc-2.35-r1.apk && \ + apk add --allow-untrusted glibc-2.35-r1.apk && \ + rm glibc-2.35-r1.apk COPY ./entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh \ No newline at end of file From b7c8fd0ec9368be8397b630efcb0a789bcc56f3b Mon Sep 17 00:00:00 2001 From: Merith Date: Thu, 5 Jun 2025 14:24:23 -0700 Subject: [PATCH 4/9] Juice --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index f318d09..b01d6ac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ RUN wget -O /tmp/WinBox_Linux.zip https://download.mikrotik.com/routeros/winbox/ FROM git.merith.xyz/gns3/base-vnc:latest -RUN apk add --no-cache wine wget +RUN apk add --no-cache wget COPY --from=builder /WinBox /WinBox From bff5d820b3879d4ef9b56686025bd6f5d4e556ab Mon Sep 17 00:00:00 2001 From: Merith Date: Thu, 5 Jun 2025 14:26:16 -0700 Subject: [PATCH 5/9] filter the juices --- Dockerfile | 3 ++- entrypoint.sh | 13 +------------ 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index b01d6ac..5e87cfb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,8 @@ COPY --from=builder /WinBox /WinBox RUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r1/glibc-2.35-r1.apk && \ apk add --allow-untrusted glibc-2.35-r1.apk && \ - rm glibc-2.35-r1.apk + rm glibc-2.35-r1.apk && \ + rm -rf /var/cache/apk/* COPY ./entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh index 42bfd87..01453ae 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,14 +1,3 @@ #!/bin/bash -# Wait until internet is available -while ! ping -c1 1.1.1.1 &>/dev/null; do - echo "Waiting for internet connection..." - sleep 5 -done - -if [ ! -f "/winbox64.exe" ]; then - echo "Winbox executable not found in /data. Downloading..." - wget -O /winbox64.exe https://download.mikrotik.com/routeros/winbox/3.42/winbox64.exe -fi - -wine64 /winbox64.exe +/WinBox \ No newline at end of file From 8752fc725adf34f5bea9a6db7dc315f59d3b86ad Mon Sep 17 00:00:00 2001 From: Merith Date: Thu, 5 Jun 2025 14:50:18 -0700 Subject: [PATCH 6/9] Compress Winbox More --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5e87cfb..7a7e643 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ RUN wget -O /tmp/WinBox_Linux.zip https://download.mikrotik.com/routeros/winbox/ wget -O /tmp/upx.tar.xz https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-amd64_linux.tar.xz && \ tar -xf /tmp/upx.tar.xz -C /tmp && \ mv /tmp/winbox/WinBox /WinBox && \ - /tmp/upx-5.0.1-amd64_linux/upx /WinBox + /tmp/upx-5.0.1-amd64_linux/upx --best --ultra-brute /WinBox FROM git.merith.xyz/gns3/base-vnc:latest From 36e020bdb4dbf5f00fc0b5b2b019f677f9d804ab Mon Sep 17 00:00:00 2001 From: Merith Date: Thu, 5 Jun 2025 15:01:27 -0700 Subject: [PATCH 7/9] no longer brutalize winbox --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7a7e643..5f589a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ RUN wget -O /tmp/WinBox_Linux.zip https://download.mikrotik.com/routeros/winbox/ wget -O /tmp/upx.tar.xz https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-amd64_linux.tar.xz && \ tar -xf /tmp/upx.tar.xz -C /tmp && \ mv /tmp/winbox/WinBox /WinBox && \ - /tmp/upx-5.0.1-amd64_linux/upx --best --ultra-brute /WinBox + /tmp/upx-5.0.1-amd64_linux/upx --lzma /WinBox FROM git.merith.xyz/gns3/base-vnc:latest From e372d13ad7f18ce073c4976f7241cd88dc68423f Mon Sep 17 00:00:00 2001 From: Merith Date: Fri, 6 Jun 2025 06:57:21 -0700 Subject: [PATCH 8/9] glibc more? --- Dockerfile | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5f589a9..ae191a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,8 +16,13 @@ RUN apk add --no-cache wget COPY --from=builder /WinBox /WinBox RUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r1/glibc-2.35-r1.apk && \ - apk add --allow-untrusted glibc-2.35-r1.apk && \ - rm glibc-2.35-r1.apk && \ + wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r1/glibc-bin-2.35-r1.apk && \ + wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r1/glibc-i18n-2.35-r1.apk && \ + apk add --allow-untrusted glibc-2.35-r1.apk glibc-bin-2.35-r1.apk glibc-i18n-2.35-r1.apk && \ + /usr/glibc-compat/bin/localedef -i en_US -f UTF-8 en_US.UTF-8 && \ + echo "export LANG=en_US.UTF-8" >> /etc/profile.d/glibc.sh && \ + echo "export LC_ALL=en_US.UTF-8" >> /etc/profile.d/glibc.sh && \ + rm glibc-2.35-r1.apk glibc-bin-2.35-r1.apk glibc-i18n-2.35-r1.apk && \ rm -rf /var/cache/apk/* COPY ./entrypoint.sh /entrypoint.sh From 680ee425d3a05524c1488ef539ab53ea052f14f3 Mon Sep 17 00:00:00 2001 From: merith-tk Date: Fri, 6 Jun 2025 18:27:47 +0100 Subject: [PATCH 9/9] auto restart winbox --- entrypoint.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index 42bfd87..59aaafc 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -11,4 +11,9 @@ if [ ! -f "/winbox64.exe" ]; then wget -O /winbox64.exe https://download.mikrotik.com/routeros/winbox/3.42/winbox64.exe fi -wine64 /winbox64.exe +while true; do + echo "Starting Winbox..." + wine64 /winbox64.exe + echo "Winbox closed. Restarting in 3 seconds..." + sleep 3 +done \ No newline at end of file