Как интегрировать docker и python скрипт, который использует landsat-util - PullRequest
0 голосов
/ 22 апреля 2020

enter image description here Я новичок в использовании docker просто потому, что мне нужно использовать его для доступа к библиотеке landsat-util . Я настроил docker на своем Ma c, и у меня есть 2 python скрипты, которые будут запускать утилиту командной строки (landsat-util), но я изо всех сил пытаюсь соединить их вместе. После запуска процесса установки для docker для landsat-util, как мне запустить свои сценарии на образе?

Вот как выглядит мое пространство docker: (изображение выше)

И это код, который я пытаюсь запустить в моем скрипте python .... Я знаю, что я запускаю код docker, неверный.

downloadCommand = 'docker run -it -v ~/landsat:/root/landsat developmentseed/landsat-util:latest 
landsat download ' + s.sceneID + ' --bands 13457 --process --clip='+str(s.min_lon)+','+str(s.min_lat)+','+str(s.max_lon)+','+str(s.max_lat)
run_script(downloadCommand) # this saves the files in ~/landsat


def run_script(script, stdin=None):
    # """Returns (stdout, stderr), raises error on non-zero return code"""
    import subprocess
    # Note: by using a list here (['bash', ...]) you avoid quoting issues, as the
    # arguments are passed in exactly this order (spaces, quotes, and newlines won't
    # cause problems):
    proc = subprocess.Popen(['bash', '-c', script],
        # stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        stdin=subprocess.PIPE)
    stdout, stderr = proc.communicate()
    # if proc.returncode:
        # raise ScriptException(proc.returncode, stdout, stderr, script)
    return stdout, stderr

class ScriptException(Exception):
    def __init__(self, returncode, stdout, stderr, script):
        self.returncode = returncode
        self.stdout = stdout
        self.stderr = stderr
        Exception.__init__('Error in script')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...