У меня есть следующий Dockerfile:
FROM python:3.8-slim
RUN apt-get update && \
apt-get install -y --no-install-recommends gcc libc-dev
WORKDIR /app
COPY . .
RUN pip install --no-cache-dir -r requirements.txt
CMD [ "python", "proxy-scraper-checker/main.py" ]
И следующий docker -compose.yml:
version: "3.3"
services:
proxy-app:
build:
context: .
dockerfile: Dockerfile
container_name: proxy-app
environment:
- PYTHONUNBUFFERED=1
Если я запускаю Dockerfile вручную через docker cmd следующим образом:
C:\Projects\myprojects\docker-example>docker build --tag my_app .
C:\Projects\myprojects\docker-example>docker run --rm -it my_app
Кажется, все работает нормально, и я получаю журналы вывода приложения, которые оно фактически выполняет:
2020-05-30 13:38:53,454 - Thread-1 - INFO - Starting scheduler...
2020-05-30 13:38:55,457 - Thread-1 - INFO - Running job Every 2 seconds do run_pldown_job(<uvloop.Loop running=False closed=False debug=False>) (last run: [never], next run: 2020-05-30 13:38:55)
2020-05-30 13:38:55,457 - Thread-1 - INFO - Pldown Job starting...
80.187.140.26:8080 HTTPS Server/OS Error:
80.187.140.26:80 HTTP Server/OS Error:
146.148.59.22:80 HTTPS Server/OS Error:
89.216.39.217:4145 Error: Connection closed unexpectedly
185.49.93.102:4145 Error: Connection closed unexpectedly
80.240.250.222:4145 Error: Connection closed unexpectedly
185.123.2.170:1080 Error: Connection closed unexpectedly
Однако, когда я пытаюсь запустить свое приложение через docker - составить следующим образом:
C:\Projects\myprojects\docker-example>docker-compose up
Мое приложение запускается нормально, но не продолжает выполнение. Ниже приведен результат:
Creating proxy-app ... done
Attaching to proxy-app
proxy-app | 2020-05-30 13:28:02,638 - Thread-1 - INFO - Starting scheduler...
Я попытался выполнить команду show logs:
C:\Projects\myprojects\docker-example>docker logs proxy-app
Но единственный журнал, который я получил, был первой строкой:
2020-05-30 13:28:02,638 - Thread-1 - INFO - Starting scheduler...
Есть предложения?
Обновление:
Я попытался создать изображение через docker, используя:
docker build --tag my_app .
И я использовал это изображение в файле набора:
version: "3.3"
services:
proxy-app:
image: my_app
И на самом деле это работает вот так.
Однако остается вопрос, почему это не работает, когда я делаю это таким образом:
version: "3.3"
services:
proxy-app:
build:
context: .
dockerfile: Dockerfile
container_name: proxy-app