ИНСТРУКЦИЯ

Этот микросервис был создан по фану. PDF был скачен с интернета и для удобства упакован в Docker-контейнер. Чтоб сократить URL и убрать в нем приписку index.pdf. Был создан файл server.py

Project Structure
PROJECT-DOOM.PDF/ ├── public/ │ └── index.pdf ├── Dockerfile └── server.py
Step 1: Dockerfile
FROM python:3.9-alpine WORKDIR /app COPY server.py . COPY public/index.pdf . EXPOSE 5050 CMD ["python", "server.py"]
Step 2: server.py
import http.server import socketserver import os PORT = 5050 class PDFHandler(http.server.SimpleHTTPRequestHandler): def do_GET(self): # Если запрос идет на корень '/', то отдаем index.pdf if self.path == '/': self.path = '/index.pdf' # Вызываем родительский do_GET для обработки файла # Он найдет файл 'index.pdf' в текущей директории return super().do_GET() def end_headers(self): # Этот блок кода нужен для правильных заголовков if self.path.endswith('.pdf'): self.send_header('Content-type', 'application/pdf') # Добавляем заголовки для предотвращения кэширования self.send_header('Cache-Control', 'no-cache, no-store, must-revalidate') self.send_header('Pragma', 'no-cache') self.send_header('Expires', '0') super().end_headers() # Запускаем сервер with socketserver.TCPServer(("", PORT), PDFHandler) as httpd: print(f"Serving files from {os.getcwd()} on port {PORT}") httpd.serve_forever()
Step 3: Deployment
docker build -t kirillpixel/kirill-project:doom.pdf . # Команда для сборки образа docker push kirillpixel/kirill-project:doom.pdf # Команда для загрузки образа на docker hub docker run -d -p 5050:5050 --name container-doom.pdf kirillpixel/kirill-project:doom.pdf # Команда для запуска контейнера

Развлекайтесь игрой:)

← Вернуться в HUB