Логи приложения в Docker
Логи приложения - это то, что процесс печатает в стандартный вывод. Строка из print не попадает в окно терминала после фонового подъёма, но остаётся в журнале службы.
При старте скрипт печатает
слово ready,
затем слушает 8000
на 0.0.0.0
и отдаёт hello:
from http.server import BaseHTTPRequestHandler, HTTPServer
print('ready')
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.end_headers()
self.wfile.write(b'hello')
if __name__ == '__main__':
HTTPServer(('0.0.0.0', 8000), Handler).serve_forever()
Код лежит в образе.
Файл Dockerfile:
FROM python:3.14
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY app.py .
CMD ["python", "app.py"]
Сервис app
собирается
и публикует порты
8080
и 8000.
Файл compose.yaml:
services:
app:
build: .
ports:
- "8080:8000"
Сначала поднимем проект в фоне:
docker compose up -d --build
Затем прочитаем накопленный
текст службы app:
docker compose logs app
Поднимите сервис note в фоне со строкой boot при старте скрипта на порту 8080.
Найдите напечатанную строку в тексте службы note.