One of the first application stacks I went to install and setup on my new Raspberry Pi docker cluster was Inspircd/qwebirc/anope. This stack was running originally on a raspberry pi 1b (256MB RAM version). I wanted to move this off the pi1 since it was out of date and would need a complete reinstall to be back to full patch status. However shortly after getting it running in my swarm, I ran into issues.
The IRC server would restart every few hours, sometimes it would restart every 10 minutes or so. I deemed that as unacceptable on my basic setup even for just using it in development of IRC bots.
The stability issues came from a over zealous health check for the server. I decided to build my own docker container for it that removed the health check. I started by grabbing the GIT repo for their docker container.
git clone https://github.com/inspircd/inspircd-docker.git
After cloning the repo, the only change I made was to comment out the healthcheck lines which can be seen below.
HEALTHCHECK \
--interval=15s \
--timeout=3s \
--start-period=60s \
--retries=3 \
CMD \
/usr/bin/nc -z localhost 6667
After commenting out the healthcheck in the dockerfile, I rebuilt the container and pushed it to a local repository.
docker build . -t inspircd
docker images # then find the latest build of the inspircd container and use the hex value from that
docker tag [hex] 127.0.0.1:5000/inspircd
docker push 127.0.0.1:5000/inspircd
After updating my docker-compose file to reference the local repository copy of inspircd, I brought down the stack and redeployed it, this then used the newly built version of inspircd, fixing the health check problem, and providing much better uptime on the container.