Перезапуск контейнера 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.
- Убедитесь, что проверки работоспособности контейнера не заканчиваются неудачей сразу после запуска.
Несмотря на все эти усилия, я так и не смог определить, почему контейнер не создает никаких журналов и почему он продолжает перезапускаться.
Может ли кто-нибудь подсказать, как устранить неполадки в этой проблеме? Есть ли дополнительные шаги, которые я могу предпринять для диагностики проблемы или сбора дополнительной информации о том, почему контейнер перезапускается?
Заранее благодарю за помощь!