Added needed files for image and build workflow
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Signed-off-by: Nis Wechselberg <enbewe@enbewe.de>
This commit is contained in:
parent
3327a375aa
commit
3438d08839
6 changed files with 150 additions and 0 deletions
17
.woodpecker.yml
Normal file
17
.woodpecker.yml
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
when:
|
||||
- event:
|
||||
- 'push'
|
||||
- 'manual'
|
||||
|
||||
steps:
|
||||
- name: 'Build and deploy uffd container image'
|
||||
image: 'quay.io/buildah/stable:latest'
|
||||
privileged: true
|
||||
environment:
|
||||
DEPLOY_TOKEN:
|
||||
from_secret: 'DEPLOY_TOKEN'
|
||||
commands:
|
||||
- 'buildah build -t git.enbewe.de/coding/uffd:latest .'
|
||||
- 'buildah login -u enbewe -p $DEPLOY_TOKEN git.enbewe.de'
|
||||
- 'buildah push git.enbewe.de/coding/uffd:latest'
|
42
Containerfile
Normal file
42
Containerfile
Normal file
|
@ -0,0 +1,42 @@
|
|||
FROM docker.io/library/debian:bullseye-20250520-slim
|
||||
|
||||
# Disable interactivity for debconf
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
# Configure uwsgi parameters for running uffd as an app in there
|
||||
ENV UWSGI_DEB_CONFNAMESPACE="app"
|
||||
ENV UWSGI_DEB_CONFNAME="uffd"
|
||||
|
||||
# Prepare the package sources and install needed software
|
||||
RUN apt-get -qq update && \
|
||||
apt-get -qq dist-upgrade && \
|
||||
apt-get -qq install ca-certificates
|
||||
|
||||
# Place the pacakge sources data in the image to download uffd
|
||||
COPY cccv-archive-key.asc /etc/apt/trusted.gpg.d/
|
||||
COPY cccv-archive.list /etc/apt/sources.list.d/
|
||||
COPY uffd_2.3.1+git20241021T122809-98fe5690_all.deb /tmp/
|
||||
|
||||
# Install uffd from (new) package sources
|
||||
RUN apt-get -qq update && \
|
||||
apt-get -qq install --no-install-recommends /tmp/uffd_*.deb && \
|
||||
# Create a "new" config from the inital config without the preset secret key
|
||||
cat /etc/uffd/uffd.cfg | grep -v "SECRET_KEY=" > /etc/uffd/uffd.cfg.tmp && \
|
||||
mv /etc/uffd/uffd.cfg.tmp /etc/uffd/uffd.cfg && \
|
||||
# Create the needed paths for the app
|
||||
mkdir --parents /var/www/uffd && \
|
||||
mkdir -p /run/uwsgi/app/uffd && \
|
||||
chown root:uffd /var/www/uffd
|
||||
|
||||
COPY entrypoint.sh /entrypoint.sh
|
||||
|
||||
USER uffd
|
||||
USER root
|
||||
|
||||
# Uffd application is exposed on port 3031
|
||||
EXPOSE 3031/tcp
|
||||
# Statistics are exposed on port 9191
|
||||
EXPOSE 9191/tcp
|
||||
|
||||
CMD bash /entrypoint.sh
|
||||
|
||||
LABEL project="https://git.cccv.de/uffd/uffd"
|
41
cccv-archive-key.asc
Normal file
41
cccv-archive-key.asc
Normal file
|
@ -0,0 +1,41 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
JRWMzY9EoBOHB1PubZuzUNIUQeui1vyX
|
||||
=uRc5
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
1
cccv-archive.list
Normal file
1
cccv-archive.list
Normal file
|
@ -0,0 +1 @@
|
|||
deb [signed-by=/etc/apt/trusted.gpg.d/cccv-archive-key.asc] https://packages.cccv.de/uffd bullseye main
|
49
entrypoint.sh
Normal file
49
entrypoint.sh
Normal file
|
@ -0,0 +1,49 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "Copying static files ..."
|
||||
cp -r /usr/share/uffd/uffd/static /var/www/uffd
|
||||
|
||||
db_ready="false"
|
||||
count=0
|
||||
while [ $count -lt 4 ] && [ "$db_ready" != "true" ] ;do
|
||||
if uffd-admin db current >> /dev/null 2>&1 ;then
|
||||
db_ready="true"
|
||||
else
|
||||
echo "Waiting for db to become ready..."
|
||||
((duration=2**$count))
|
||||
sleep $duration
|
||||
((count=$count+1))
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$db_ready" == "true" ] ;then
|
||||
echo "Running datbase migrations ..."
|
||||
uffd-admin db upgrade
|
||||
|
||||
if [ -n "$UFFD_INITIAL_ADMIN_PW" ] && [ "$(uffd-admin user list)" == "" ]; then
|
||||
echo "Creating groups and roles for initial admin user ..."
|
||||
if ! uffd-admin group show 'uffd_admin' >> /dev/null 2>&1 ;then
|
||||
uffd-admin group create 'uffd_admin'
|
||||
fi
|
||||
if ! uffd-admin group show 'uffd_access' >> /dev/null 2>&1 ;then
|
||||
uffd-admin group create 'uffd_access'
|
||||
fi
|
||||
if ! uffd-admin role show 'uffd_admin' >> /dev/null 2>&1 ;then
|
||||
uffd-admin role create 'uffd_admin' --add-group 'uffd_admin' --add-group 'uffd_access'
|
||||
fi
|
||||
if [ -z "$UFFD_INITIAL_ADMIN_USER" ] ;then
|
||||
UFFD_INITIAL_ADMIN_USER='uffd_admin'
|
||||
fi
|
||||
if [ -z "$UFFD_INITIAL_ADMIN_MAIL" ] ;then
|
||||
UFFD_INITIAL_ADMIN_MAIL='uffd_admin@localhost'
|
||||
fi
|
||||
echo "Creating initial admin user ..."
|
||||
uffd-admin user create "$UFFD_INITIAL_ADMIN_USER" --password "$UFFD_INITIAL_ADMIN_PW" --mail "$UFFD_INITIAL_ADMIN_MAIL" --add-role 'uffd_admin'
|
||||
fi
|
||||
else
|
||||
echo "WARNING: Database is not ready yet, skipping migration and initialization"
|
||||
fi
|
||||
|
||||
echo "Starting server ..."
|
||||
runuser --preserve-environment -u uffd -- \
|
||||
uwsgi --ini /etc/uwsgi/apps-enabled/uffd.ini --socket 0.0.0.0:3031 --master --stats 0.0.0.0:9191
|
BIN
uffd_2.3.1+git20241021T122809-98fe5690_all.deb
Normal file
BIN
uffd_2.3.1+git20241021T122809-98fe5690_all.deb
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue