社内se × プログラマ × ビッグデータ

プログラミングなどITに興味があります。

Docker mysql8.0 Could not open file '/var/log/mysql/mysql-error.log' for error logging: Permission denied

Ubuntu18.04 上で発生した問題(Macでは発生しない?)
権限の問題であるようには見えるので、無理やり権限を変更してみる。
下記の変更で動作するようになりました。

変更前
docker-compose.yml

version: "3"
services:
  mysql8-db:
    image: mysql:8.0
    volumes:
      - db8-store:/var/lib/mysql
      - db8-log-store:/var/log/mysql
      - ./conf/my.cnf:/etc/mysql/conf.d/my.cnf
    environment:
      - MYSQL_DATABASE=${DB_NAME}
      - MYSQL_USER=${DB_USER}
      - MYSQL_PASSWORD=${DB_PASS}
      - MYSQL_ROOT_PASSWORD=${DB_PASS}
      - TZ=${TZ}
    ports:
      - ${DB_PORT}:3306

volumes:
  db8-store:

Dockerfileなし

変更後
docker-compose.yml

version: "3"
services:
  mysql8-db:
    build:
      context: "."
      dockerfile: Dockerfile
    volumes:
      - db8-store:/var/lib/mysql
      - db8-log-store:/var/log/mysql
      - ./conf/my.cnf:/etc/mysql/conf.d/my.cnf
    environment:
      - MYSQL_DATABASE=${DB_NAME}
      - MYSQL_USER=${DB_USER}
      - MYSQL_PASSWORD=${DB_PASS}
      - MYSQL_ROOT_PASSWORD=${DB_PASS}
      - TZ=${TZ}
    ports:
      - ${DB_PORT}:3306

volumes:
  db8-store:
  db8-log-store:

Dockerfile

FROM mysql:8.0
RUN mkdir /var/log/mysql
RUN chown mysql:mysql /var/log/mysql