docker-compose up залипает при подключении при запуске скрипта планировщика python - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть простое приложение на Python для запуска некоторых запланированных заданий.Я хочу, чтобы эти задания выполнялись без остановок в виде сценария.

import os
import time
import requests

from apscheduler.schedulers.blocking import BlockingScheduler
from pytz import utc

def a_get_request_to_api():
    request.get("some_url")

def another_get_request_to_api():
    try:    
        request.get("some_url")
    except Exception as e:
        print(e)

if __name__ == "__main__":
    print('STARTING SCHEDULER ...')

    # initialize Blocking Scheduler
    scheduler = BlockingScheduler(timezone=utc)

    # add jobs to run on scheduled time
    scheduler.add_job(a_get_request_to_api, trigger='interval', hours=1, max_instances=2)
    scheduler.add_job(another_get_request_to_api, trigger='interval', hours=6, max_instances=2)



    print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))

    try:
        scheduler.start()

    except (KeyboardInterrupt, SystemExit) as e:
        print(e)

Это нормально и работает, когда я запускаю прямо из терминала.

my Dockerfile:

FROM python:3.6-alpine
WORKDIR /app
RUN pip install requests apscheduler pytz
CMD [ "python", "scheduler.py" ]

и простой docker-compose.yml:

version: '3'
services:
  scheduler:
    build: .
    volumes:
      - .:/app

Но когда я докеризирую приложение и docker-compose up оно застревает на attaching to

1 Ответ

0 голосов
/ 20 сентября 2018

Я думаю, вам следует попробовать запустить docker-compose в режиме отсоединения:

docker-compose up -d

-d, --detach               Detached mode: Run containers in the background,
                           print new container names. Incompatible with
                           --abort-on-container-exit.

См. https://docs.docker.com/compose/reference/up/

...