feat: initial structure with rsyncd and telegraf-snmp images
Some checks failed
Build and push rsyncd image / build-and-push-image (push) Failing after 6m3s
Build and push telegraf-snmp image / build-and-push-image (push) Failing after 6m4s

This commit is contained in:
dresi 2026-06-10 10:29:16 +02:00
commit 46e0a70521
5 changed files with 172 additions and 0 deletions

View File

@ -0,0 +1,57 @@
name: Build and push rsyncd image
run-name: ${{ gitea.actor }} is building and pushing rsyncd image
on:
push:
paths:
- 'rsyncd/**'
- '.gitea/workflows/rsyncd.yaml'
env:
RESULT_IMAGE_NAME: tools/rsyncd
jobs:
build-and-push-image:
runs-on: docker
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Log in to registry
uses: docker/login-action@v3
with:
registry: ${{ vars.PRIVATE_REGISTRY_DOMAIN }}
username: ${{ secrets.PRIVATE_REGISTRY_USER }}
password: ${{ secrets.PRIVATE_REGISTRY_PASSWORD }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Prepare BuildKit config with custom CA
run: |
CONFIG_DIR_PATH="${{ runner.temp }}/buildx-config"
mkdir -p "${CONFIG_DIR_PATH}"
CERT_FILE_PATH="${CONFIG_DIR_PATH}/ca.crt"
CONFIG_FILE_PATH="${CONFIG_DIR_PATH}/buildkitd.toml"
echo "${{ vars.PRIVATE_REGISTRY_CA_CERT }}" > "${CERT_FILE_PATH}"
cat << EOF > "${CONFIG_FILE_PATH}"
[registry."${{ vars.PRIVATE_REGISTRY_DOMAIN }}"]
ca = ["${CERT_FILE_PATH}"]
EOF
echo "BUILDKIT_CONFIG=${CONFIG_FILE_PATH}" >> $GITEA_ENV
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
config: ${{ env.BUILDKIT_CONFIG }}
- name: Build and push image
uses: docker/build-push-action@v6
with:
context: rsyncd
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ vars.PRIVATE_REGISTRY_DOMAIN }}/${{ env.RESULT_IMAGE_NAME }}:latest

View File

@ -0,0 +1,57 @@
name: Build and push telegraf-snmp image
run-name: ${{ gitea.actor }} is building and pushing telegraf-snmp image
on:
push:
paths:
- 'telegraf-snmp/**'
- '.gitea/workflows/telegraf-snmp.yaml'
env:
RESULT_IMAGE_NAME: tools/telegraf-snmp
jobs:
build-and-push-image:
runs-on: docker
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Log in to registry
uses: docker/login-action@v3
with:
registry: ${{ vars.PRIVATE_REGISTRY_DOMAIN }}
username: ${{ secrets.PRIVATE_REGISTRY_USER }}
password: ${{ secrets.PRIVATE_REGISTRY_PASSWORD }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Prepare BuildKit config with custom CA
run: |
CONFIG_DIR_PATH="${{ runner.temp }}/buildx-config"
mkdir -p "${CONFIG_DIR_PATH}"
CERT_FILE_PATH="${CONFIG_DIR_PATH}/ca.crt"
CONFIG_FILE_PATH="${CONFIG_DIR_PATH}/buildkitd.toml"
echo "${{ vars.PRIVATE_REGISTRY_CA_CERT }}" > "${CERT_FILE_PATH}"
cat << EOF > "${CONFIG_FILE_PATH}"
[registry."${{ vars.PRIVATE_REGISTRY_DOMAIN }}"]
ca = ["${CERT_FILE_PATH}"]
EOF
echo "BUILDKIT_CONFIG=${CONFIG_FILE_PATH}" >> $GITEA_ENV
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
config: ${{ env.BUILDKIT_CONFIG }}
- name: Build and push image
uses: docker/build-push-action@v6
with:
context: telegraf-snmp
platforms: linux/amd64
push: true
tags: ${{ vars.PRIVATE_REGISTRY_DOMAIN }}/${{ env.RESULT_IMAGE_NAME }}:latest

14
rsyncd/Dockerfile Normal file
View File

@ -0,0 +1,14 @@
FROM ubuntu:24.04
LABEL org.opencontainers.image.authors="dockerimage@dresi.wtf"
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends rsync && \
apt-get clean autoclean && \
apt-get autoremove -y && \
rm -rf /var/lib/{apt,dpkg,cache,log}/
EXPOSE 873
VOLUME /volume
ADD ./run.sh /usr/local/bin/run.sh
RUN chmod +x /usr/local/bin/run.sh
ENTRYPOINT ["/usr/local/bin/run.sh"]

29
rsyncd/run.sh Normal file
View File

@ -0,0 +1,29 @@
#!/bin/bash
VOLUME=${VOLUME:-"volume"}
ALLOW=${ALLOW:-192.168.0.0/16 172.16.0.0/12}
OWNER=${OWNER:-nobody}
GROUP=${GROUP:-nogroup}
# create users matching ids passed if necessary
if [ "${GROUP}" != "nogroup" ]; then
groupadd -g ${GROUP} rsyncdgroup
fi
if [ "${OWNER}" != "nobody" ]; then
groupadd -u ${OWNER} -G rsyncdgroup rsyncduser
fi
[ -f /etc/rsyncd.conf ] || cat <<EOF > /etc/rsyncd.conf
uid = ${OWNER}
gid = ${GROUP}
use chroot = yes
pid file = /var/run/rsyncd.pid
log file = /dev/stdout
[${VOLUME}]
hosts deny = *
hosts allow = ${ALLOW}
read only = false
path = /volume
comment = ${VOLUME}
EOF
exec /usr/bin/rsync --no-detach --daemon --config /etc/rsyncd.conf "$@"

15
telegraf-snmp/Dockerfile Normal file
View File

@ -0,0 +1,15 @@
FROM telegraf:latest
LABEL org.opencontainers.image.authors="dockerimage@dresi.wtf"
RUN apt-get update && \
apt-get install -y --no-install-recommends snmp-mibs-downloader wget && \
download-mibs 2>/dev/null || true && \
wget -q -O /usr/share/snmp/mibs/UBNT-MIB \
https://raw.githubusercontent.com/librenms/librenms/master/mibs/ubiquiti/UBNT-MIB && \
wget -q -O /usr/share/snmp/mibs/UBNT-UniFi-MIB \
https://raw.githubusercontent.com/librenms/librenms/master/mibs/ubiquiti/UBNT-UniFi-MIB && \
echo "mibs +ALL" >> /etc/snmp/snmp.conf && \
apt-get remove -y wget && \
apt-get clean autoclean && \
apt-get autoremove -y && \
rm -rf /var/lib/{apt,dpkg,cache,log}/