Перезапуск контейнера Docker без создания журналов

У меня возникла проблема с контейнером Docker, когда он постоянно перезапускается без создания каких-либо журналов. Вот детали моей установки:

  • У меня есть конфигурация Docker Compose с двумя сервисами: profiles и postgres.
  • Служба profiles собрана из пользовательского Dockerfile и запускает Python-приложение.
  • Сервис postgres использует официальный образ PostgreSQL Docker.
  • Оба сервиса определены в одном и том же docker-compose.yml файле.
  • Контейнер службы профилей (profile-profiles-1) постоянно перезапускается, но когда я пытаюсь просмотреть его журналы с помощью docker logs profile-profiles-1, там нет никаких данных.

Вот мой docker-compose.yml:

x-variables: &variables
  ENV_STAGE: local

services:
  profiles:
    build:
      context: .
      dockerfile: ./compose/dev/web/Dockerfile
    volumes:
      - ./web/:/usr/src/web/
    ports:
      - "8000:8000"
    environment:
      <<: *variables
    env_file:
      - compose/dev/env/.env
      - compose/dev/env/.db.env
      - compose/dev/env/.data.env
    depends_on:
      - postgres
    restart: unless-stopped

  postgres:
    image: postgres:latest
    restart: always
    volumes:
      # - postgres-data:/var/lib/postgresql/data
      # - compose/dev/db/pg.conf:/etc/postgresql/postgresql.conf
      - ./compose/dev/db/pg.conf:/etc/postgresql/postgresql.conf
    environment:
      - POSTGRES_USER=test
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=test
      - PGDATA=/var/lib/postgresql/data
    ports:
      - 5432:5432
    # command:
    #   - config_file=/etc/postgresql/postgresql.conf
    command: postgres -c config_file=/etc/postgresql/postgresql.conf

    env_file:
      - compose/dev/env/.db.env

volumes:
  postgres-data:

Вот моя Dockerfile заявка:

# pull official base image
FROM python:3.9-alpine

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    LANG=C.UTF-8 \
    HOME=/usr/src/web

WORKDIR $HOME

ARG GID=1000
ARG UID=1000
ARG USER=ubuntu

# install dependencies
RUN apk update \
    && apk add --no-cache curl postgresql-dev gcc python3-dev musl-dev openssl libffi-dev openssl-dev build-base \
    # install Pillow dependencies
    jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev harfbuzz-dev fribidi-dev \
    # pygraphviz
    graphviz graphviz-dev \
    && pip install --upgrade pip \
    && addgroup -g $GID -S $USER \
    && adduser -S $USER -G $USER --disabled-password --uid "$UID"

COPY ./web/config/requirements  ./requirements
RUN pip install -r ./requirements/local.txt

COPY --chown=$USER:$USER . /
COPY --chown=$USER:$USER ./web $HOME

RUN chmod +x /*.sh \
    && mkdir -p $HOME/static /redis_socket \
    && chown -R $USER:$USER $HOME/static \
    && chmod -R 777 /redis_socket \
    && flake8 .

USER $USER

Вот что я пробовал до сих пор:

  • Проверьте конфигурацию Dockerfile и Docker Compose для службы профилей, чтобы убедиться, что она правильно настроена.
  • Убедитесь, что код приложения внутри контейнера службы профилей настроен на запись логов в stdout или stderr.
  • Убедитесь, что проверки работоспособности контейнера не заканчиваются неудачей сразу после запуска.

Несмотря на все эти усилия, я так и не смог определить, почему контейнер не создает никаких журналов и почему он продолжает перезапускаться.

Может ли кто-нибудь подсказать, как устранить неполадки в этой проблеме? Есть ли дополнительные шаги, которые я могу предпринять для диагностики проблемы или сбора дополнительной информации о том, почему контейнер перезапускается?

Заранее благодарю за помощь!

Вернуться на верх