v0.1 #1
4 changed files with 81 additions and 0 deletions
22
Dockerfile
Normal file
22
Dockerfile
Normal file
|
@ -0,0 +1,22 @@
|
|||
FROM alpine:3.22.0
|
||||
|
||||
LABEL maintainer="Phil <phil@hackmi.ch>"
|
||||
LABEL version="0.1"
|
||||
LABEL description="Docker image for TFTP server using dnsmasq"
|
||||
|
||||
|
||||
WORKDIR /
|
||||
|
||||
RUN apk add --no-cache \
|
||||
bash \
|
||||
dnsmasq
|
||||
|
||||
EXPOSE 69/udp
|
||||
|
||||
COPY start.sh init.sh /
|
||||
|
||||
RUN chmod +x start.sh init.sh
|
||||
|
||||
VOLUME ["/tftp"]
|
||||
|
||||
ENTRYPOINT ["./start.sh"]
|
24
init.sh/init.sh
Normal file
24
init.sh/init.sh
Normal file
|
@ -0,0 +1,24 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Configure user and group IDs
|
||||
PUID=${PUID:-1000}
|
||||
PGID=${PGID:-1000}
|
||||
|
||||
echo "[init] Setting up user nbxyz with PUID=${PUID} and PGID=${PGID}"
|
||||
|
||||
if ! getent group ${PGID} > /dev/null 2>&1; then
|
||||
addgroup --gid ${PGID} tftp
|
||||
else
|
||||
echo "[init] Group with GID ${PGID} already exists"
|
||||
fi
|
||||
|
||||
if ! getent passwd ${PUID} > /dev/null 2>&1; then
|
||||
adduser -u ${PUID} -G tftp -h /tftp -s /bin/false -D tftp
|
||||
else
|
||||
echo "[init] User with UID ${PUID} already exists"
|
||||
fi
|
||||
|
||||
usermod -a -G users tftp 2>/dev/null || true
|
||||
|
||||
chown -R nbxyz:nbxyz /tftp
|
||||
chmod -R 7777 -R /tftp
|
13
init.sh/start.sh
Normal file
13
init.sh/start.sh
Normal file
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Init File
|
||||
/init.sh
|
||||
|
||||
# Wrapper script for dnsmasq to ensure TFTP logs are visible in docker logs
|
||||
echo "[dnsmasq] Starting TFTP server on port 69"
|
||||
echo "[dnsmasq] TFTP root: /config/menus"
|
||||
echo "[dnsmasq] TFTP security: enabled"
|
||||
echo "[dnsmasq] Logging: enabled (dhcp and queries)"
|
||||
|
||||
# Start dnsmasq as root to bind to port 69, then drop privileges to tftp
|
||||
exec /usr/sbin/dnsmasq --port=0 --keep-in-foreground --enable-tftp --user=tftp --tftp-secure --tftp-root=/tftp --log-facility=- --log-dhcp --log-queries "$@"
|
22
woodpecker.yml
Normal file
22
woodpecker.yml
Normal file
|
@ -0,0 +1,22 @@
|
|||
when:
|
||||
branch: main
|
||||
event: push
|
||||
|
||||
variables:
|
||||
- &repo git.hackmi.ch/${CI_REPO_OWNER}/${CI_REPO_NAME}
|
||||
|
||||
steps:
|
||||
publish:
|
||||
image: docker.io/woodpeckerci/plugin-docker-buildx:latest
|
||||
settings:
|
||||
platforms: linux/amd64
|
||||
repo: *repo
|
||||
registry: git.hackmi.ch
|
||||
tags: latest
|
||||
username:
|
||||
from_secret: git-package-user
|
||||
password:
|
||||
from_secret: git-package-pw
|
||||
when:
|
||||
branch: main
|
||||
event: push
|
Loading…
Add table
Add a link
Reference in a new issue