Hi,
Disclaimer: I do this to advertise to new owners of a Raspberry Pi 4 who struggled to make TTRSS work. Since fox doesn’t provide an image for Raspberry Pi 4, I made one for myself and thought to share.
I have spent some time time trying to make TTRSS work on my Raspberry Pi 4 (armv7), and I learned about a wonderful feature of GitHub: GitHub Actions.
Basically, they automate actions. I have set one up to build TTRSS for Raspberry Pi 4 and push the image to DockerHub.
I can’t promise that it won’t break, especially if there are changes in the docker compose repository, but it’s an easy way to rely on an image already built, and anyone can copy what I did to have their own image themselves.
More specifically, I sync the docker compose repo to my repo’s TTRSS-docker branch (have to create it before running this Action), then build it, and push it to DockerHub (have to create the repo before). I do this for the app (schklom/ttrss-app
) and web-nginx (schklom/ttrss-web-nginx
) containers.
My repo is private, but I share the code below.
You can use
image: schklom/ttrss-app
instead of
build:
context:
./app
for the app
, backups
, and updater
containers.
AFAIK, the updater
updates every day, so I update my image every day as well.
For info, here is the action defined in my private repo (myrepo/.github/workflows/TTRSS.yml).
I have set up repository secrets obviously.
name: Sync+build+push TTRSS
on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '0 0 * * *'
workflow_dispatch:
jobs:
repo-sync:
runs-on: ubuntu-latest
steps:
- name: repo-sync
uses: wei/git-sync@v2
with:
source_repo: "https://git.tt-rss.org/fox/ttrss-docker-compose.git"
source_branch: "master"
destination_repo: "[email protected]:schklom/Mirror-workflows.git"
destination_branch: "TTRSS-docker"
ssh_private_key: ${{ secrets.GITSYNCACTION }}
buildandpush:
needs: [repo-sync]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
ref: 'TTRSS-docker' # branch
# https://github.com/docker/setup-qemu-action#usage
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
# https://github.com/marketplace/actions/docker-setup-buildx
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
#- name: Available platforms
# run: echo ${{ steps.buildx.outputs.platforms }}
# https://github.com/docker/login-action#docker-hub
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# https://github.com/docker/build-push-action#multi-platform-image
- name: Build and push TTRSS app
uses: docker/build-push-action@v2
with:
context: ./app
file: ./app/Dockerfile
#platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x
platforms: linux/arm/v7
pull: true
push: true
tags: |
schklom/ttrss-app:latest
- name: Build and push TTRSS web-nginx
uses: docker/build-push-action@v2
with:
context: ./web-nginx
file: ./web-nginx/Dockerfile
#platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x
platforms: linux/arm/v7
pull: true
push: true
tags: |
schklom/ttrss-web-nginx:latest
EDIT: main repo is no longer private, and available here