ИНСТРУКЦИЯ
Этот микросервис был создан по фану. 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