greenbone / greenbone-container-images

Additional Container Images from Greenbone
https://greenbone.github.io/docs/
GNU General Public License v3.0
6 stars 1 forks source link

Redis failing to start: cannot remove '/run/redis/redis.sock' #10

Closed boomshadow closed 1 year ago

boomshadow commented 1 year ago

I'm running a a brand new hosting environment, with a brand new docker. I've made no changes. When I run the official docker-compose file (https://greenbone.github.io/docs/latest/22.4/container/index.html#docker-compose-file), a few containers fail to run due to Redis failing:

greenbone-network-scanner-redis-server-1         | rm: cannot remove '/run/redis/redis.sock': Permission denied

A work-around is to pull the Dockerfile and redis config down locally (https://github.com/greenbone/greenbone-container-images/tree/main/redis-server).

Then I commented out the USER directive: https://github.com/greenbone/greenbone-container-images/blob/main/redis-server/Dockerfile#L14

Again, that change I made was a work-around to get things running. The official compose stack, with zero changes, no longer runs right now. I'm running Docker Mac (Intel). I have the latest Mac (13.4.1), and Docker Desktop (4.20.1) .

bjoernricks commented 1 year ago

As I wrote at https://github.com/greenbone/greenbone-container-images/issues/9 it is most likely you broke the permissions in the redis socket volume in some kind. Try to remove the volume via docker volume rm greenbone-community-edition_redis_socket_vol and restart the containers docker-compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition up -d.

boomshadow commented 1 year ago

I wrote additional details when I opened this issue. This is a completely clean, new environment and I get the problem.

I ran docker system prune -af --volumes and still have the problem. Does the stack work for you from a clean state?

bjoernricks commented 1 year ago

The /run/redis is mounted from the redis socker volume into the redis-server image and the ospd-openvas image.

bjoernricks commented 1 year ago

I am not sure if docker system prune -af --volumes removes volumes which are still used by a container.

bjoernricks commented 1 year ago

Does the stack work for you from a clean state?

Yes it does. I did run

docker-compose -f docker-compose-22.4.yml -p greenbone-community-edition down -v
docker-compose -f docker-compose-22.4.yml -p greenbone-community-edition pull
docker-compose -f docker-compose-22.4.yml -p greenbone-community-edition up -d

and currently my feed is loaded by gvmd and ospd-openvas.

bjoernricks commented 1 year ago
greenbone-community-edition-redis-server-1  | 7:M 29 Jun 2023 14:25:26.732 * The server is now ready to accept connections at /run/redis/redis.sock
boomshadow commented 1 year ago

I greatly apologize. You're right. It seems system volume pruning does not clean all dangling volumes. My "nuke" commands for cleaning docker to a clean slate no longer clear the volumes from unused containers:

docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
docker rmi --force $(docker images -q)
docker system prune -af --volumes

Thanks for your patience. I'm sorry about my assumptions.

bjoernricks commented 1 year ago

No problem. Happy to help. Just as a side note, personally I would keep the postgres data volume. It contains all the data. All other stuff will be re-created automatically.