mirror of
https://github.com/haugene/docker-transmission-openvpn.git
synced 2025-08-18 21:11:00 +02:00
Brush up proxy and rss plugin images, build for multiarch support #1483
This commit is contained in:
parent
7419fecfaa
commit
643740c820
@ -13,7 +13,34 @@ workflows:
|
|||||||
build-docker-images:
|
build-docker-images:
|
||||||
jobs:
|
jobs:
|
||||||
- build-with-buildx:
|
- build-with-buildx:
|
||||||
|
name: build-transmission-openvpn-images
|
||||||
context: dockerhub
|
context: dockerhub
|
||||||
|
image-name: haugene/transmission-openvpn
|
||||||
|
build-context: "."
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- dev
|
||||||
|
- master
|
||||||
|
tags:
|
||||||
|
only: /^\d+\.\d+.*/
|
||||||
|
- build-with-buildx:
|
||||||
|
name: build-reverse-proxy-images
|
||||||
|
context: dockerhub
|
||||||
|
image-name: haugene/transmission-openvpn-proxy
|
||||||
|
build-context: "proxy"
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- dev
|
||||||
|
- master
|
||||||
|
tags:
|
||||||
|
only: /^\d+\.\d+.*/
|
||||||
|
- build-with-buildx:
|
||||||
|
name: build-rss-plugin-images
|
||||||
|
context: dockerhub
|
||||||
|
image-name: haugene/transmission-rss
|
||||||
|
build-context: "plugins/rss"
|
||||||
filters:
|
filters:
|
||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
@ -25,6 +52,11 @@ workflows:
|
|||||||
# Job definitions, used by the workflows.
|
# Job definitions, used by the workflows.
|
||||||
jobs:
|
jobs:
|
||||||
build-with-buildx:
|
build-with-buildx:
|
||||||
|
parameters:
|
||||||
|
image-name:
|
||||||
|
type: string
|
||||||
|
build-context:
|
||||||
|
type: string
|
||||||
machine:
|
machine:
|
||||||
image: ubuntu-2004:202010-01
|
image: ubuntu-2004:202010-01
|
||||||
steps:
|
steps:
|
||||||
@ -47,10 +79,10 @@ jobs:
|
|||||||
docker buildx use mybuilder
|
docker buildx use mybuilder
|
||||||
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||||
docker buildx ls
|
docker buildx ls
|
||||||
docker buildx build -t haugene/transmission-openvpn:$IMAGE_TAG --progress plain \
|
docker buildx build -t << parameters.image-name >>:$IMAGE_TAG --progress plain \
|
||||||
--platform linux/arm,linux/arm64,linux/amd64 \
|
--platform linux/arm,linux/arm64,linux/amd64 \
|
||||||
--build-arg REVISION=$CIRCLE_SHA1 \
|
--build-arg REVISION=$CIRCLE_SHA1 \
|
||||||
--push .
|
--push << parameters.build-context >>
|
||||||
|
|
||||||
build-and-deploy-gh-pages:
|
build-and-deploy-gh-pages:
|
||||||
docker:
|
docker:
|
||||||
|
@ -1,17 +1,12 @@
|
|||||||
FROM ubuntu:16.04
|
FROM ruby:2-alpine
|
||||||
MAINTAINER Kristian Haugene
|
|
||||||
|
|
||||||
# Update packages and install software
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get -y upgrade \
|
|
||||||
&& apt-get -y install curl gcc make ruby2.3-dev \
|
|
||||||
&& gem install transmission-rss \
|
|
||||||
&& curl -L https://github.com/jwilder/dockerize/releases/download/v0.5.0/dockerize-linux-amd64-v0.5.0.tar.gz | tar -C /usr/local/bin -xzv
|
|
||||||
|
|
||||||
ADD . /etc/transmission-rss
|
|
||||||
|
|
||||||
|
# Image caching, put "never changing" layers first
|
||||||
|
CMD ["/etc/transmission-rss/start.sh"]
|
||||||
ENV TRANSMISSION_DOWNLOAD_DIR=/data/completed \
|
ENV TRANSMISSION_DOWNLOAD_DIR=/data/completed \
|
||||||
RSS_URL=**None** \
|
RSS_URL=**None** \
|
||||||
RSS_REGEXP=
|
RSS_REGEXP=
|
||||||
|
|
||||||
CMD ["/etc/transmission-rss/start.sh"]
|
# Install build-base and transmission-rss gem
|
||||||
|
RUN apk add build-base && gem install transmission-rss
|
||||||
|
|
||||||
|
ADD . /etc/transmission-rss
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
FROM balenalib/raspberry-pi:stretch
|
|
||||||
MAINTAINER Kristian Haugene
|
|
||||||
|
|
||||||
# Update packages and install software
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get -y upgrade \
|
|
||||||
&& apt-get -y install curl gcc make ruby2.3-dev libc6-dev \
|
|
||||||
&& gem install transmission-rss \
|
|
||||||
&& curl -L https://github.com/jwilder/dockerize/releases/download/v0.2.0/dockerize-linux-armhf-v0.2.0.tar.gz | tar -C /usr/local/bin -xzv
|
|
||||||
|
|
||||||
ADD . /etc/transmission-rss
|
|
||||||
|
|
||||||
ENV TRANSMISSION_DOWNLOAD_DIR=/data/completed \
|
|
||||||
RSS_URL=**None** \
|
|
||||||
RSS_REGEXP=
|
|
||||||
|
|
||||||
CMD ["/etc/transmission-rss/start.sh"]
|
|
@ -1,23 +0,0 @@
|
|||||||
# This Dockerfile is for building ARM images on x64 machine like Docker Hub
|
|
||||||
|
|
||||||
FROM balenalib/raspberry-pi:stretch
|
|
||||||
MAINTAINER Kristian Haugene
|
|
||||||
|
|
||||||
RUN [ "cross-build-start" ]
|
|
||||||
|
|
||||||
# Update packages and install software
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get -y upgrade \
|
|
||||||
&& apt-get -y install curl gcc make ruby2.3-dev libc6-dev \
|
|
||||||
&& gem install transmission-rss \
|
|
||||||
&& curl -L https://github.com/jwilder/dockerize/releases/download/v0.2.0/dockerize-linux-armhf-v0.2.0.tar.gz | tar -C /usr/local/bin -xzv
|
|
||||||
|
|
||||||
ADD . /etc/transmission-rss
|
|
||||||
|
|
||||||
ENV TRANSMISSION_DOWNLOAD_DIR=/data/completed \
|
|
||||||
RSS_URL=**None** \
|
|
||||||
RSS_REGEXP=
|
|
||||||
|
|
||||||
CMD ["/etc/transmission-rss/start.sh"]
|
|
||||||
|
|
||||||
RUN [ "cross-build-end" ]
|
|
@ -1,5 +0,0 @@
|
|||||||
#! /bin/bash
|
|
||||||
|
|
||||||
export TRANSMISSION_DOWNLOAD_DIR={{ .Env.TRANSMISSION_DOWNLOAD_DIR }}
|
|
||||||
export RSS_URL="{{ .Env.RSS_URL }}"
|
|
||||||
export RSS_REGEXP="{{ .Env.RSS_REGEXP }}"
|
|
@ -1,16 +1,31 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Source our persisted env variables from container startup
|
#
|
||||||
dockerize -template /etc/transmission-rss/environment-variables.tmpl:/etc/transmission-rss/environment-variables.sh
|
# This script tries to figure out how the container is configured.
|
||||||
. /etc/transmission-rss/environment-variables.sh
|
# The user has two options:
|
||||||
|
# 1. Mount a custom config file to be used
|
||||||
|
# 2. Use the built in template that supports one feed with regex filter
|
||||||
|
#
|
||||||
|
|
||||||
if [ -z "${RSS_URL}" ] || [ "${RSS_URL}" = "**None**" ] ; then
|
if [ -f /etc/transmission-rss.conf ] ; then
|
||||||
echo "NO RSS URL CONFIGURED, IGNORING"
|
echo "Found mounted /etc/transmission-rss.conf file"
|
||||||
|
elif [ -z "${RSS_URL}" ] || [ "${RSS_URL}" = "**None**" ] ; then
|
||||||
|
echo "Error: No config is mounted and RSS_URL is not defined."
|
||||||
|
echo "Have no config to start from. Exit with error code."
|
||||||
|
exit 1
|
||||||
else
|
else
|
||||||
|
# Configure plugin based on template. Use sed to insert
|
||||||
|
sed "s^url: placeholder^url: $RSS_URL^" < /etc/transmission-rss/transmission-rss.tmpl \
|
||||||
|
| sed "s^download_path: placeholder^download_path: $TRANSMISSION_DOWNLOAD_DIR^" \
|
||||||
|
> /etc/transmission-rss.conf
|
||||||
|
|
||||||
if [ -z "${RSS_REGEXP}" ] ; then
|
if [ -z "${RSS_REGEXP}" ] ; then
|
||||||
sed -i 's/regexp:*//g' /etc/transmission-rss/transmission-rss.tmpl
|
sed -i '/regexp/d' /etc/transmission-rss.conf
|
||||||
|
else
|
||||||
|
sed -i "s#regexp: placeholder#regexp: $RSS_REGEXP#" /etc/transmission-rss.conf
|
||||||
fi
|
fi
|
||||||
dockerize -template /etc/transmission-rss/transmission-rss.tmpl:/etc/transmission-rss.conf
|
|
||||||
echo "STARTING RSS PLUGIN"
|
|
||||||
transmission-rss
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo "Starting RSS plugin"
|
||||||
|
cat /etc/transmission-rss.conf
|
||||||
|
transmission-rss
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
feeds:
|
feeds:
|
||||||
- url: {{ .Env.RSS_URL }}
|
- url: placeholder
|
||||||
download_path: {{ .Env.TRANSMISSION_DOWNLOAD_DIR }}
|
download_path: placeholder
|
||||||
regexp: {{ .Env.RSS_REGEXP }}
|
regexp: placeholder
|
||||||
|
|
||||||
server:
|
server:
|
||||||
host: transmission
|
host: transmission
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
FROM nginx
|
FROM nginx
|
||||||
|
EXPOSE 8080
|
||||||
COPY nginx.conf /etc/nginx/nginx.conf
|
COPY nginx.conf /etc/nginx/nginx.conf
|
@ -1,16 +0,0 @@
|
|||||||
FROM balenalib/raspberry-pi:stretch
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y \
|
|
||||||
ca-certificates \
|
|
||||||
nginx \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
|
|
||||||
&& ln -sf /dev/stderr /var/log/nginx/error.log
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
COPY nginx.conf /etc/nginx/nginx.conf
|
|
||||||
|
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
|
@ -1,22 +0,0 @@
|
|||||||
# This Dockerfile is for building ARM images on x64 machine like Docker Hub
|
|
||||||
|
|
||||||
FROM balenalib/raspberry-pi:stretch
|
|
||||||
|
|
||||||
RUN [ "cross-build-start" ]
|
|
||||||
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install -y \
|
|
||||||
ca-certificates \
|
|
||||||
nginx \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
|
|
||||||
&& ln -sf /dev/stderr /var/log/nginx/error.log
|
|
||||||
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
COPY nginx.conf /etc/nginx/nginx.conf
|
|
||||||
|
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
|
||||||
|
|
||||||
RUN [ "cross-build-end" ]
|
|
Loading…
x
Reference in New Issue
Block a user