Я новичок в использовании 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')