Skip to content

Commit

Permalink
Add Dockerfiles for new doc generation container (base/buildbot)
Browse files Browse the repository at this point in the history
- based on ubuntu 22.04 LTS

closes: #59
  • Loading branch information
alorbach committed Jan 22, 2024
1 parent 55fc4fe commit a7aab49
Show file tree
Hide file tree
Showing 6 changed files with 114 additions and 0 deletions.
28 changes: 28 additions & 0 deletions dev_env/ubuntu/doc_base/22.04/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get upgrade -y
RUN apt-get install -y \
autoconf \
autoconf-archive \
automake \
autotools-dev \
net-tools \
bison \
curl \
flex \
git \
sudo \
vim \
wget \
python3-docutils \
python3-pip \
python3-pysnmp4
RUN pip install sphinx sphinx_rtd_theme
VOLUME /rsyslog
RUN groupadd rsyslog \
&& useradd -g rsyslog -s /bin/bash rsyslog \
&& echo "rsyslog ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \
&& echo "buildbot ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
WORKDIR /rsyslog
USER rsyslog
5 changes: 5 additions & 0 deletions dev_env/ubuntu/doc_base/22.04/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash
set -e
# Use --no-cache to rebuild image
docker build $1 -t rsyslog/rsyslog_dev_doc_base_ubuntu:22.04 .
printf "\n\n================== BUILD DONE\n"
21 changes: 21 additions & 0 deletions dev_env/ubuntu/doc_base/22.04/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/bash
printf "\n\n================== ENTER DOCKER CONTAINER\n"

if [ "$RSYSLOG_HOME" == "" ]; then
export RSYSLOG_HOME=$(pwd)
echo info: RSYSLOG_HOME not set, using $RSYSLOG_HOME
fi

printf 'user ids: %s:%s\n' $(id -u) $(id -g)
printf 'container_uid: %s\n' ${RSYSLOG_CONTAINER_UID--u $(id -u):$(id -g)}
printf 'container cmd: %s\n' $*

# Run docker
docker run \
--privileged \
--cap-add=SYS_ADMIN \
-e ENVTODO \
${RSYSLOG_CONTAINER_UID--u $(id -u):$(id -g)} \
$DOCKER_RUN_EXTRA_FLAGS \
-v "$RSYSLOG_HOME":/rsyslog \
-ti --rm rsyslog/rsyslog_dev_doc_base_ubuntu:22.04
20 changes: 20 additions & 0 deletions dev_env/ubuntu/doc_buildbot/22.04/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM rsyslog/rsyslog_dev_doc_base_ubuntu:22.04
USER root
RUN apt-get update && apt-get install -y \
python3-dev \
python3-pip
RUN pip3 install buildbot-worker buildbot-slave
RUN groupadd -r buildbot && useradd -r -g buildbot buildbot
RUN mkdir /worker && chown buildbot:buildbot /worker
# Install your build-dependencies here ...
ENV WORKER_ENVIRONMENT_BLACKLIST=WORKER*
USER buildbot
WORKDIR /worker
RUN buildbot-worker create-worker . docker.rsyslog.com docker-ubuntu16 password
# the following script is directly from buildbot git repo and seems
# to be necessary at the moment.
# see https://github.com/buildbot/buildbot/issues/4179
COPY tpl-buildbot.tac /worker/buildbot.tac
ENTRYPOINT ["/usr/local/bin/buildbot-worker"]
CMD ["start", "--nodaemon"]
VOLUME /worker
1 change: 1 addition & 0 deletions dev_env/ubuntu/doc_buildbot/22.04/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
docker build $1 -t rsyslog/rsyslog_dev_doc_buildbot_ubuntu:22.04 .
39 changes: 39 additions & 0 deletions dev_env/ubuntu/doc_buildbot/22.04/tpl-buildbot.tac
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import fnmatch
import os
import sys

from twisted.application import service
from twisted.python.log import FileLogObserver
from twisted.python.log import ILogObserver

from buildbot_worker.bot import Worker

# setup worker
basedir = os.path.abspath(os.path.dirname(__file__))
application = service.Application('buildbot-worker')


application.setComponent(ILogObserver, FileLogObserver(sys.stdout).emit)
# and worker on the same process!
buildmaster_host = os.environ.get("BUILDMASTER", 'localhost')
port = int(os.environ.get("BUILDMASTER_PORT", 9989))
workername = os.environ.get("WORKERNAME", 'docker')
passwd = os.environ.get("WORKERPASS")

# delete the password from the environ so that it is not leaked in the log
blacklist = os.environ.get("WORKER_ENVIRONMENT_BLACKLIST", "WORKERPASS").split()
for name in list(os.environ.keys()):
for toremove in blacklist:
if fnmatch.fnmatch(name, toremove):
del os.environ[name]

keepalive = 600
umask = None
maxdelay = 300
allow_shutdown = None
maxretries = 10

s = Worker(buildmaster_host, port, workername, passwd, basedir,
keepalive, umask=umask, maxdelay=maxdelay,
allow_shutdown=allow_shutdown, maxRetries=maxretries)
s.setServiceParent(application)

0 comments on commit a7aab49

Please sign in to comment.