Docker и Rails: невозможно получить доступ к файлу журнала

Когда я запускаю свой сервер разработки Rails (или запускаю тест), я получаю следующую ошибку:

Ошибка Rails: невозможно получить доступ к файлу журнала. Убедитесь, что /usr/src/app/log/development.log существует и доступен для записи (т. е. сделать его доступен для записи для пользователя и группы: chmod 0664 /usr/src/app/log/development.log). Уровень журнала был повышен до WARN, а вывод направляется в STDERR, пока проблема не будет устранена.

Эта проблема сохраняется даже после того, как я это сделаю chmod -R 777 log.

У меня есть приложение Dockerized под управлением Alpine Linux.

Что может быть причиной этой проблемы?

Доступна ли ваша папка log на вашем volumes? (Я полагаю, вы используете docker-compose)

brcebn 20.12.2020 16:23

Так и оказалось, проблема в нем.

Jason Swett 20.12.2020 19:03
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
2
872
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Оказывается, проблема была в том, что мой каталог log был смонтирован как каталог журнала PostgreSQL.

services:
  postgres:
    image: postgres:12.3-alpine
    mem_limit: 64m
    volumes:
      - ./log:/root/log:cached # <-- this line was the culprit
      - postgresql:/var/lib/postgresql/data:delegated
    ports:
      - "127.0.0.1:5432:5432"
    environment:
      PSQL_HISTFILE: /root/log/.psql_history
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
    restart: on-failure
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 10s
      timeout: 2s
      retries: 10
    logging:
      driver: none

Более подробно проблему описываю в этом выпуске GitHub.

Другие вопросы по теме