All checks were successful
continuous-integration/drone/push Build is passing
70 lines
2.3 KiB
Docker
70 lines
2.3 KiB
Docker
FROM ubuntu:22.04
|
|
|
|
ARG DEBIAN_FRONTEND="noninteractive"
|
|
ENV DUMB_INIT_BASE_URL="https://github.com/Yelp/dumb-init/releases/download/v1.2.5"
|
|
|
|
# Step 1: Install prerequisites
|
|
RUN apt-get update && apt-get -y install curl software-properties-common
|
|
|
|
# Step 2: Add the Deluge PPA and update apt cache
|
|
RUN add-apt-repository -u ppa:deluge-team/stable && apt-get update
|
|
|
|
# Step 3: Download dumb-init asset for amd64
|
|
RUN curl -Lo /tmp/dumb-init "$DUMB_INIT_BASE_URL/dumb-init_1.2.5_amd64.deb"
|
|
|
|
# Step 4: Install dumb-init for amd64
|
|
RUN dpkg-deb -x /tmp/dumb-init /tmp/dumb-init-dir && \
|
|
cp /tmp/dumb-init-dir/usr/bin/dumb-init /usr/local/bin/dumb-init && \
|
|
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 && \
|
|
usermod -G users abc
|
|
|
|
# Step 8: Copy configuration and scripts
|
|
COPY root/ /
|
|
|
|
# Step 9: Set environment variables
|
|
ENV OPENVPN_USERNAME=**None** \
|
|
OPENVPN_PASSWORD=**None** \
|
|
OPENVPN_PROVIDER=**None** \
|
|
GLOBAL_APPLY_PERMISSIONS=true \
|
|
TZ=Europe/Berlin \
|
|
DELUGE_WEB_PORT=8112 \
|
|
DELUGE_DEAMON_PORT=58846 \
|
|
DELUGE_DOWNLOAD_DIR=/download/completed \
|
|
DELUGE_INCOMPLETE_DIR=/download/incomplete \
|
|
DELUGE_TORRENT_DIR=/download/torrents \
|
|
DELUGE_WATCH_DIR=/download/watch \
|
|
CREATE_TUN_DEVICE=true \
|
|
ENABLE_UFW=false \
|
|
UFW_ALLOW_GW_NET=false \
|
|
UFW_EXTRA_PORTS= \
|
|
UFW_DISABLE_IPTABLES_REJECT=false \
|
|
PUID= \
|
|
PGID= \
|
|
UMASK=022 \
|
|
PEER_DNS=true \
|
|
PEER_DNS_PIN_ROUTES=true \
|
|
DROP_DEFAULT_ROUTE= \
|
|
HEALTH_CHECK_HOST=google.com \
|
|
LOG_TO_STDOUT=false \
|
|
DELUGE_LISTEN_PORT_LOW=53394 \
|
|
DELUGE_LISTEN_PORT_HIGH=53404 \
|
|
DELUGE_OUTGOING_PORT_LOW=63394 \
|
|
DELUGE_OUTGOING_PORT_HIGH=63404
|
|
|
|
# Step 10: Configure health check and expose ports
|
|
HEALTHCHECK --interval=1m CMD /etc/scripts/healthcheck.sh
|
|
EXPOSE 8112 58846
|
|
|
|
# Step 11: Set default command
|
|
CMD ["/usr/local/bin/dumb-init", "/etc/openvpn/init.sh"] |