skip to Main Content

I stumbled across a problem with docker volumes while starting docker containers with a docker compose file (MariaDB, RabbitMQ, Maven). I start them simply with docker-compose up -d (WITHOUT SUDO)

My volumes are definied like this:

...
volumes:
  - ./production/mysql:/var/lib/mysql:z
...

Everything is working fine and the ./production directory is created (where the volumes are mapped)

But when I again try to restart the docker containers with down/up, I get following error:

error checking context: 'no permission to read from '…/production/mysql/aria_log.00000001'

When I check the mentioned file I saw that it needs root:root permission. This is because the file is generated with the root user inside the container. So I tried to use namespace as mentioned in the docs.

Anyway the error still occurs. Any ideas or references?

Thanks.

Docker Compose File:

version: '3.8'

services:
  mysql:
    image: mariadb:latest
    restart: always
    env_file:
      - config.env
    volumes:
      - ./production/mysql:/var/lib/mysql:z
    environment:
      MYSQL_DATABASE: ${DATABASE_NAME}
      MYSQL_USER: ${DATABASE_USER}
      MYSQL_PASSWORD: ${DATABASE_PASSWORD}
      MYSQL_ROOT_PASSWORD: ${DATABASE_PASSWORD}
    networks:
      - testnetwork

networks:
  testnetwork:


2

Answers


  1. Run the Docker daemon as a non-root user this can be helpfull for your purpose.

    all document are here.

    Login or Signup to reply.
  2. The issue comes from the mapping between the host user/group IDs and the ones inside the container. One of the solutions is to use a named volume and avoid all this hassle, but you can also do the following:

    Add user: ${UID}:${GID} to your service inside the docker-compose file.
    Run UID=${id -u} GID=${id -g} docker-compose up. This way you make sure that the user in the container will have the same UID/GID as the user on the host and files created in the container will have proper permissions.

    NOTE: Docker for Mac (using the osxfs driver) does this behind the scenes and you don’t need to worry about users and groups.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search