I previously posted about an issue where the nginx container for the Collabora application logs a GET to /robots.txt every 10 seconds. I tried modifying the files in the container, but they were reset on restart. I also tried to run the container with --log-driver=none
, but was unsuccessful. Despite being a software dev, I’m new to the homelab world and trunas.
I solved it by changing the docker image and then committing those changes. The change I made was to set access_log off;
in the nginx config. I did it at the server root because I don’t really care about those logs for this app, but it could be done on the location
level.
Here’s how I did it: Here’s the reference SO post that I used: https://stackoverflow.com/a/74515438
What I did was I shelled into the image:
sudo docker exec -it ix-collabora-nginx-1 bash
apt update && apt install vim
vi /etc/nginx/nginx.conf
and add theaccess_log off;
- if you’re not familiar with vim, arrow key to the line you want then press ‘a’ to enter “append mode”. Make your change, then
esc
,:wq!
. You need the!
because the file is read only
- if you’re not familiar with vim, arrow key to the line you want then press ‘a’ to enter “append mode”. Make your change, then
apt remove vim
exit
sudo docker commit <image id>
sudo docker restart ix-collabora-nginx-1
If you’d done a docker commit on your earlier changes, they’d have stuck as well.
The proper way to do this is to fork their image project and alter the nginx files that get incorporated in the build. Then you can run the stack with a build command instead of an image reference, and git pull your fork whenever there’s upstream merges. Or Action the fork to build an image for you every time it gets merged that you reference in your docker compose instead.