Установка определенной версии GDAL в контейнере Docker?

#django #docker #makefile #gdal #rhel

#django #docker #makefile #gdal #rhel

Вопрос:

Я пытаюсь настроить контейнер Docker для сайта Django, но он полагается на версию GDAL, которая, как представляется, не может быть установлена из командной строки (1.8.1).

Чтобы установить это локально, я должен сначала запустить Configure и Make в исходной папке. Но я не могу найти информацию в Интернете о том, как запускать многоступенчатые процессы, подобные этому (возможно, запуск скрипта bash?)

Как мне указать Dockerfile настраивать / создавать / устанавливать из исходного кода? Кроме того, есть ли способ избежать необходимости контейнеризации исходного кода для этого процесса?

Особенности:

  • Docker под управлением Python2.7 alpine
  • Сайт Django
  • RHEL 7.6

Заранее спасибо

ОБНОВЛЕНИЕ: Вот конкретный журнал того, что происходит при попытке запустить ‘pip install gdal ==1.8.1’ в Dockerfile без установленного GDAL

 Collecting GDAL==1.8.1 (from -r requirements.txt (line 45))
  Downloading https://files.pythonhosted.org/packages/29/03/e9a666aeeebcfcfa0c07b56c440a4e9fc45161cbf41fc23099427458f11c/GDAL-1.8.1.tar.gz (400kB)
    Complete output from command python setup.py egg_info:
    running egg_info
    creating pip-egg-info/GDAL.egg-info
    writing pip-egg-info/GDAL.egg-info/PKG-INFO
    writing top-level names to pip-egg-info/GDAL.egg-info/top_level.txt
    writing dependency_links to pip-egg-info/GDAL.egg-info/dependency_links.txt
    writing manifest file 'pip-egg-info/GDAL.egg-info/SOURCES.txt'
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-htaYeH/GDAL/setup.py", line 263, in <module>
        ext_modules = ext_modules )
      File "/usr/local/lib/python2.7/site-packages/setuptools/__init__.py", line 145, in setup
        return distutils.core.setup(**attrs)
      File "/usr/local/lib/python2.7/distutils/core.py", line 151, in setup
        dist.run_commands()
      File "/usr/local/lib/python2.7/distutils/dist.py", line 953, in run_commands
        self.run_command(cmd)
      File "/usr/local/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "/usr/local/lib/python2.7/site-packages/setuptools/command/egg_info.py", line 296, in run
        self.find_sources()
      File "/usr/local/lib/python2.7/site-packages/setuptools/command/egg_info.py", line 303, in find_sources
        mm.run()
      File "/usr/local/lib/python2.7/site-packages/setuptools/command/egg_info.py", line 534, in run
        self.add_defaults()
      File "/usr/local/lib/python2.7/site-packages/setuptools/command/egg_info.py", line 570, in add_defaults
        sdist.add_defaults(self)
      File "/usr/local/lib/python2.7/site-packages/setuptools/command/py36compat.py", line 36, in add_defaults
        self._add_defaults_ext()
      File "/usr/local/lib/python2.7/site-packages/setuptools/command/py36compat.py", line 119, in _add_defaults_ext
        build_ext = self.get_finalized_command('build_ext')
      File "/usr/local/lib/python2.7/distutils/cmd.py", line 312, in get_finalized_command
        cmd_obj.ensure_finalized()
      File "/usr/local/lib/python2.7/distutils/cmd.py", line 109, in ensure_finalized
        self.finalize_options()
      File "/tmp/pip-install-htaYeH/GDAL/setup.py", line 160, in finalize_options
        self.gdaldir = self.get_gdal_config('prefix')
      File "/tmp/pip-install-htaYeH/GDAL/setup.py", line 140, in get_gdal_config
        return fetch_config(option)
      File "/tmp/pip-install-htaYeH/GDAL/setup.py", line 89, in fetch_config
        raise gdal_config_error, e
    __main__.gdal_config_error: [Errno 2] No such file or directory
  

Ответ №1:

Зачем выполнять работу, которую уже выполнил кто-то другой?

https://github.com/geo-data/gdal-docker