From 65071e96caaedd2a59c30dce9ee25ae3fb6489f9 Mon Sep 17 00:00:00 2001 From: Kristian Haugene Date: Thu, 6 Aug 2020 18:47:23 +0200 Subject: [PATCH] Make alpine based image the default and remove ubuntu image --- .circleci/config.yml | 28 --------- Dockerfile | 45 ++++++--------- Dockerfile.alpine | 135 ------------------------------------------- 3 files changed, 17 insertions(+), 191 deletions(-) delete mode 100644 Dockerfile.alpine diff --git a/.circleci/config.yml b/.circleci/config.yml index 644ec68d9..66f2896a3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,15 +12,6 @@ workflows: # Defines workflow for when to build the different Docker images build-docker-images: jobs: - - build-ubuntu-image: - context: dockerhub - filters: - branches: - only: - - dev - - master - tags: - only: /^\d+\.\d+.*/ - build-alpine-image: context: dockerhub filters: @@ -51,25 +42,6 @@ workflows: # Job definitions, used by the workflows. jobs: - build-ubuntu-image: - environment: - IMAGE_NAME: haugene/transmission-openvpn - docker: - - image: circleci/buildpack-deps:stretch - steps: - - checkout - - setup_remote_docker - - calculate-tag-name: - distro: ubuntu - - run: - name: Build Docker image - command: docker build -t $IMAGE_NAME:$IMAGE_TAG . - - run: - name: Login to Docker Hub - command: echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin - - run: - name: Push image - command: docker push $IMAGE_NAME:$IMAGE_TAG build-alpine-image: environment: diff --git a/Dockerfile b/Dockerfile index 6716ec9b9..a87cc5500 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,43 +1,33 @@ -FROM ubuntu:19.10 +FROM alpine:3.12 VOLUME /data VOLUME /config ARG DOCKERIZE_ARCH=amd64 -ARG DOCKERIZE_VERSION=v0.6.1 -ARG DUMBINIT_VERSION=1.2.2 - -# Required for omitting the tzdata configuration dialog -ENV DEBIAN_FRONTEND=noninteractive - -# Update, upgrade and install core software -RUN apt update \ - && apt -y install apt-utils software-properties-common wget git curl jq \ - && add-apt-repository ppa:transmissionbt/ppa \ - && apt update \ - && apt install -y sudo transmission-cli transmission-common transmission-daemon curl rar unrar zip unzip ufw iputils-ping openvpn bc tzdata bash \ - python2.7 python2.7-pysqlite2 && ln -sf /usr/bin/python2.7 /usr/bin/python2 \ - && apt -y upgrade \ - && wget https://github.com/Secretmapper/combustion/archive/release.zip \ - && unzip release.zip -d /opt/transmission-ui/ \ - && rm release.zip \ +ENV DOCKERIZE_VERSION=v0.6.0 +RUN echo "@community http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \ + && apk --no-cache add bash dumb-init ip6tables ufw@community openvpn shadow transmission-daemon transmission-cli curl jq tzdata openrc tinyproxy tinyproxy-openrc\ + && echo "Install dockerize $DOCKERIZE_VERSION ($DOCKERIZE_ARCH)" \ + && wget -qO- https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-$DOCKERIZE_ARCH-$DOCKERIZE_VERSION.tar.gz | tar xz -C /usr/bin \ + && mkdir -p /opt/transmission-ui \ + && echo "Install Combustion" \ + && wget -qO- https://github.com/Secretmapper/combustion/archive/release.tar.gz | tar xz -C /opt/transmission-ui \ + && echo "Install kettu" \ + && wget -qO- https://github.com/endor/kettu/archive/master.tar.gz | tar xz -C /opt/transmission-ui \ + && mv /opt/transmission-ui/kettu-master /opt/transmission-ui/kettu \ + && echo "Install Transmission-Web-Control" \ && mkdir /opt/transmission-ui/transmission-web-control \ && curl -sL `curl -s https://api.github.com/repos/ronggang/transmission-web-control/releases/latest | jq --raw-output '.tarball_url'` | tar -C /opt/transmission-ui/transmission-web-control/ --strip-components=2 -xz \ && ln -s /usr/share/transmission/web/style /opt/transmission-ui/transmission-web-control \ && ln -s /usr/share/transmission/web/images /opt/transmission-ui/transmission-web-control \ && ln -s /usr/share/transmission/web/javascript /opt/transmission-ui/transmission-web-control \ && ln -s /usr/share/transmission/web/index.html /opt/transmission-ui/transmission-web-control/index.original.html \ - && git clone git://github.com/endor/kettu.git /opt/transmission-ui/kettu \ - && apt install -y tinyproxy telnet vim \ - && wget https://github.com/Yelp/dumb-init/releases/download/v${DUMBINIT_VERSION}/dumb-init_${DUMBINIT_VERSION}_amd64.deb \ - && dpkg -i dumb-init_${DUMBINIT_VERSION}_amd64.deb \ - && rm -rf dumb-init_${DUMBINIT_VERSION}_amd64.deb \ - && curl -L https://github.com/jwilder/dockerize/releases/download/${DOCKERIZE_VERSION}/dockerize-linux-${DOCKERIZE_ARCH}-${DOCKERIZE_VERSION}.tar.gz | tar -C /usr/local/bin -xzv \ - && apt clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ + && rm -rf /tmp/* /var/tmp/* \ && groupmod -g 1000 users \ && useradd -u 911 -U -d /config -s /bin/false abc \ && usermod -G users abc +# Add configuration and scripts ADD openvpn/ /etc/openvpn/ ADD transmission/ /etc/transmission/ ADD tinyproxy /opt/tinyproxy/ @@ -135,12 +125,11 @@ ENV OPENVPN_USERNAME=**None** \ WEBPROXY_PORT=8888 \ WEBPROXY_USERNAME= \ WEBPROXY_PASSWORD= \ - HEALTH_CHECK_HOST=google.com \ - DOCKER_LOG=false + DOCKER_LOG=false \ + HEALTH_CHECK_HOST=google.com HEALTHCHECK --interval=5m CMD /etc/scripts/healthcheck.sh # Expose port and run EXPOSE 9091 -EXPOSE 8888 CMD ["dumb-init", "/etc/openvpn/start.sh"] diff --git a/Dockerfile.alpine b/Dockerfile.alpine deleted file mode 100644 index a87cc5500..000000000 --- a/Dockerfile.alpine +++ /dev/null @@ -1,135 +0,0 @@ -FROM alpine:3.12 - -VOLUME /data -VOLUME /config - -ARG DOCKERIZE_ARCH=amd64 -ENV DOCKERIZE_VERSION=v0.6.0 -RUN echo "@community http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \ - && apk --no-cache add bash dumb-init ip6tables ufw@community openvpn shadow transmission-daemon transmission-cli curl jq tzdata openrc tinyproxy tinyproxy-openrc\ - && echo "Install dockerize $DOCKERIZE_VERSION ($DOCKERIZE_ARCH)" \ - && wget -qO- https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-linux-$DOCKERIZE_ARCH-$DOCKERIZE_VERSION.tar.gz | tar xz -C /usr/bin \ - && mkdir -p /opt/transmission-ui \ - && echo "Install Combustion" \ - && wget -qO- https://github.com/Secretmapper/combustion/archive/release.tar.gz | tar xz -C /opt/transmission-ui \ - && echo "Install kettu" \ - && wget -qO- https://github.com/endor/kettu/archive/master.tar.gz | tar xz -C /opt/transmission-ui \ - && mv /opt/transmission-ui/kettu-master /opt/transmission-ui/kettu \ - && echo "Install Transmission-Web-Control" \ - && mkdir /opt/transmission-ui/transmission-web-control \ - && curl -sL `curl -s https://api.github.com/repos/ronggang/transmission-web-control/releases/latest | jq --raw-output '.tarball_url'` | tar -C /opt/transmission-ui/transmission-web-control/ --strip-components=2 -xz \ - && ln -s /usr/share/transmission/web/style /opt/transmission-ui/transmission-web-control \ - && ln -s /usr/share/transmission/web/images /opt/transmission-ui/transmission-web-control \ - && ln -s /usr/share/transmission/web/javascript /opt/transmission-ui/transmission-web-control \ - && ln -s /usr/share/transmission/web/index.html /opt/transmission-ui/transmission-web-control/index.original.html \ - && rm -rf /tmp/* /var/tmp/* \ - && groupmod -g 1000 users \ - && useradd -u 911 -U -d /config -s /bin/false abc \ - && usermod -G users abc - -# Add configuration and scripts -ADD openvpn/ /etc/openvpn/ -ADD transmission/ /etc/transmission/ -ADD tinyproxy /opt/tinyproxy/ -ADD scripts /etc/scripts/ - -ENV OPENVPN_USERNAME=**None** \ - OPENVPN_PASSWORD=**None** \ - OPENVPN_PROVIDER=**None** \ - GLOBAL_APPLY_PERMISSIONS=true \ - TRANSMISSION_ALT_SPEED_DOWN=50 \ - TRANSMISSION_ALT_SPEED_ENABLED=false \ - TRANSMISSION_ALT_SPEED_TIME_BEGIN=540 \ - TRANSMISSION_ALT_SPEED_TIME_DAY=127 \ - TRANSMISSION_ALT_SPEED_TIME_ENABLED=false \ - TRANSMISSION_ALT_SPEED_TIME_END=1020 \ - TRANSMISSION_ALT_SPEED_UP=50 \ - TRANSMISSION_BIND_ADDRESS_IPV4=0.0.0.0 \ - TRANSMISSION_BIND_ADDRESS_IPV6=:: \ - TRANSMISSION_BLOCKLIST_ENABLED=false \ - TRANSMISSION_BLOCKLIST_URL=http://www.example.com/blocklist \ - TRANSMISSION_CACHE_SIZE_MB=4 \ - TRANSMISSION_DHT_ENABLED=true \ - TRANSMISSION_DOWNLOAD_DIR=/data/completed \ - TRANSMISSION_DOWNLOAD_LIMIT=100 \ - TRANSMISSION_DOWNLOAD_LIMIT_ENABLED=0 \ - TRANSMISSION_DOWNLOAD_QUEUE_ENABLED=true \ - TRANSMISSION_DOWNLOAD_QUEUE_SIZE=5 \ - TRANSMISSION_ENCRYPTION=1 \ - TRANSMISSION_IDLE_SEEDING_LIMIT=30 \ - TRANSMISSION_IDLE_SEEDING_LIMIT_ENABLED=false \ - TRANSMISSION_INCOMPLETE_DIR=/data/incomplete \ - TRANSMISSION_INCOMPLETE_DIR_ENABLED=true \ - TRANSMISSION_LPD_ENABLED=false \ - TRANSMISSION_MAX_PEERS_GLOBAL=200 \ - TRANSMISSION_MESSAGE_LEVEL=2 \ - TRANSMISSION_PEER_CONGESTION_ALGORITHM= \ - TRANSMISSION_PEER_ID_TTL_HOURS=6 \ - TRANSMISSION_PEER_LIMIT_GLOBAL=200 \ - TRANSMISSION_PEER_LIMIT_PER_TORRENT=50 \ - TRANSMISSION_PEER_PORT=51413 \ - TRANSMISSION_PEER_PORT_RANDOM_HIGH=65535 \ - TRANSMISSION_PEER_PORT_RANDOM_LOW=49152 \ - TRANSMISSION_PEER_PORT_RANDOM_ON_START=false \ - TRANSMISSION_PEER_SOCKET_TOS=default \ - TRANSMISSION_PEX_ENABLED=true \ - TRANSMISSION_PORT_FORWARDING_ENABLED=false \ - TRANSMISSION_PREALLOCATION=1 \ - TRANSMISSION_PREFETCH_ENABLED=1 \ - TRANSMISSION_QUEUE_STALLED_ENABLED=true \ - TRANSMISSION_QUEUE_STALLED_MINUTES=30 \ - TRANSMISSION_RATIO_LIMIT=2 \ - TRANSMISSION_RATIO_LIMIT_ENABLED=false \ - TRANSMISSION_RENAME_PARTIAL_FILES=true \ - TRANSMISSION_RPC_AUTHENTICATION_REQUIRED=false \ - TRANSMISSION_RPC_BIND_ADDRESS=0.0.0.0 \ - TRANSMISSION_RPC_ENABLED=true \ - TRANSMISSION_RPC_HOST_WHITELIST= \ - TRANSMISSION_RPC_HOST_WHITELIST_ENABLED=false \ - TRANSMISSION_RPC_PASSWORD=password \ - TRANSMISSION_RPC_PORT=9091 \ - TRANSMISSION_RPC_URL=/transmission/ \ - TRANSMISSION_RPC_USERNAME=username \ - TRANSMISSION_RPC_WHITELIST=127.0.0.1 \ - TRANSMISSION_RPC_WHITELIST_ENABLED=false \ - TRANSMISSION_SCRAPE_PAUSED_TORRENTS_ENABLED=true \ - TRANSMISSION_SCRIPT_TORRENT_DONE_ENABLED=false \ - TRANSMISSION_SCRIPT_TORRENT_DONE_FILENAME= \ - TRANSMISSION_SEED_QUEUE_ENABLED=false \ - TRANSMISSION_SEED_QUEUE_SIZE=10 \ - TRANSMISSION_SPEED_LIMIT_DOWN=100 \ - TRANSMISSION_SPEED_LIMIT_DOWN_ENABLED=false \ - TRANSMISSION_SPEED_LIMIT_UP=100 \ - TRANSMISSION_SPEED_LIMIT_UP_ENABLED=false \ - TRANSMISSION_START_ADDED_TORRENTS=true \ - TRANSMISSION_TRASH_ORIGINAL_TORRENT_FILES=false \ - TRANSMISSION_UMASK=2 \ - TRANSMISSION_UPLOAD_LIMIT=100 \ - TRANSMISSION_UPLOAD_LIMIT_ENABLED=0 \ - TRANSMISSION_UPLOAD_SLOTS_PER_TORRENT=14 \ - TRANSMISSION_UTP_ENABLED=false \ - TRANSMISSION_WATCH_DIR=/data/watch \ - TRANSMISSION_WATCH_DIR_ENABLED=true \ - TRANSMISSION_HOME=/data/transmission-home \ - TRANSMISSION_WATCH_DIR_FORCE_GENERIC=false \ - ENABLE_UFW=false \ - UFW_ALLOW_GW_NET=false \ - UFW_EXTRA_PORTS= \ - UFW_DISABLE_IPTABLES_REJECT=false \ - TRANSMISSION_WEB_UI= \ - PUID= \ - PGID= \ - TRANSMISSION_WEB_HOME= \ - DROP_DEFAULT_ROUTE= \ - WEBPROXY_ENABLED=false \ - WEBPROXY_PORT=8888 \ - WEBPROXY_USERNAME= \ - WEBPROXY_PASSWORD= \ - DOCKER_LOG=false \ - HEALTH_CHECK_HOST=google.com - -HEALTHCHECK --interval=5m CMD /etc/scripts/healthcheck.sh - -# Expose port and run -EXPOSE 9091 -CMD ["dumb-init", "/etc/openvpn/start.sh"]