fix multiarch...
Some checks are pending
Build/Push (master) / changes (push) Waiting to run
Build/Push (master) / build-docker (push) Blocked by required conditions

This commit is contained in:
2025-03-25 02:09:56 +01:00
parent ec3bce5731
commit 1dc35dd7ee

View File

@@ -1,28 +1,52 @@
FROM ubuntu:22.04 FROM ubuntu:22.04
ARG DEBIAN_FRONTEND="noninteractive" ARG DEBIAN_FRONTEND="noninteractive"
ENV DUMB_INIT_BASE_URL="https://github.com/Yelp/dumb-init/releases/download/v1.2.5"
# Install prerequisites and curl # Step 1: Install prerequisites
RUN apt-get update && apt-get -y install curl software-properties-common && \ RUN apt-get update && apt-get -y install curl software-properties-common
add-apt-repository -u ppa:deluge-team/stable && \
apt-get update && \ # Step 2: Add the Deluge PPA and update apt cache
# Download and install dumb-init manually based on architecture RUN add-apt-repository -u ppa:deluge-team/stable && apt-get update
arch=$(dpkg --print-architecture) && \
if [ "$arch" = "arm64" ]; then arch="aarch64"; fi && \ # Step 3: Download dumb-init asset based on architecture
curl -Lo /tmp/dumb-init.deb "https://github.com/Yelp/dumb-init/releases/download/v1.2.5/dumb-init_1.2.5_${arch}.deb" && \ RUN arch=$(dpkg --print-architecture) && \
dpkg -i /tmp/dumb-init.deb && rm -f /tmp/dumb-init.deb && \ if [ "$arch" = "arm64" ]; then \
# Install other dependencies asset="dumb-init_1.2.5_aarch64"; \
apt-get -y install iputils-ping dnsutils bash jq net-tools openvpn curl ufw deluged deluge-web p7zip-full unrar unzip && \ elif [ "$arch" = "amd64" ]; then \
echo "Cleanup" && \ asset="dumb-init_1.2.5_amd64.deb"; \
rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/* && \ else \
echo "Adding user" && \ echo "Unsupported architecture: $arch" && exit 1; \
groupmod -g 1000 users && \ fi && \
echo "Downloading dumb-init asset: $asset" && \
curl -Lo /tmp/dumb-init "$DUMB_INIT_BASE_URL/$asset"
# Step 4: Install dumb-init based on asset type
RUN arch=$(dpkg --print-architecture) && \
if [ "$arch" = "amd64" ]; then \
dpkg-deb -x /tmp/dumb-init /tmp/dumb-init-dir && \
cp /tmp/dumb-init-dir/usr/bin/dumb-init /usr/local/bin/dumb-init; \
else \
cp /tmp/dumb-init /usr/local/bin/dumb-init; \
fi && \
chmod +x /usr/local/bin/dumb-init && \
rm -rf /tmp/dumb-init /tmp/dumb-init-dir
# Step 5: Install other dependencies
RUN apt-get -y install iputils-ping dnsutils bash jq net-tools openvpn curl ufw deluged deluge-web p7zip-full unrar unzip
# Step 6: Clean up apt cache and temporary files
RUN rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
# Step 7: Add the user "abc"
RUN groupmod -g 1000 users && \
useradd -u 911 -U -d /config -s /bin/false abc && \ useradd -u 911 -U -d /config -s /bin/false abc && \
usermod -G users abc usermod -G users abc
# Add configuration and scripts # Step 8: Copy configuration and scripts
COPY root/ / COPY root/ /
# Step 9: Set environment variables
ENV OPENVPN_USERNAME=**None** \ ENV OPENVPN_USERNAME=**None** \
OPENVPN_PASSWORD=**None** \ OPENVPN_PASSWORD=**None** \
OPENVPN_PROVIDER=**None** \ OPENVPN_PROVIDER=**None** \
@@ -52,9 +76,9 @@ ENV OPENVPN_USERNAME=**None** \
DELUGE_OUTGOING_PORT_LOW=63394 \ DELUGE_OUTGOING_PORT_LOW=63394 \
DELUGE_OUTGOING_PORT_HIGH=63404 DELUGE_OUTGOING_PORT_HIGH=63404
# Step 10: Configure health check and expose ports
HEALTHCHECK --interval=1m CMD /etc/scripts/healthcheck.sh HEALTHCHECK --interval=1m CMD /etc/scripts/healthcheck.sh
# Deluge Deamon and web
EXPOSE 8112 58846 EXPOSE 8112 58846
CMD ["/usr/bin/dumb-init", "/etc/openvpn/init.sh"] # Step 11: Set default command
CMD ["/usr/bin/dumb-init", "/etc/openvpn/init.sh"]