tethysplatform / tethys

The Tethys Platform main Django website project repository.
http://tethysplatform.org/
BSD 2-Clause "Simplified" License
92 stars 49 forks source link

[BUG] THREDDS Docker 4.6.20-SNAPSHOT tag removed #938

Closed swainn closed 1 year ago

swainn commented 1 year ago

Describe the bug When installing the THREDDS container using the tethys docker command and error is thrown and the container is not installed. Unidata has removed the unidata/thredds-docker:4.6.20-SNAPSHOT tag and released unidata/thredds-docker:4.6.20.

To Reproduce Steps to reproduce the behavior:

  1. Run:
tethys docker init -c thredds
  1. Error is thrown (see traceback below)

Expected behavior The commands should install the THREDDS Docker container.

Errors/Traceback

Pulling Docker images...
Traceback (most recent call last):
  File "C:\Miniconda3\envs\tethys\lib\site-packages\docker\api\client.py", line 268, in _raise_for_status
    response.raise_for_status()
  File "C:\Miniconda3\envs\tethys\lib\site-packages\requests\models.py", line 1021, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http+docker://localnpipe/v1.41/images/create?tag=4.6.20-SNAPSHOT&fromImage=unidata%2Fthredds-docker

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Miniconda3\envs\tethys\Scripts\tethys-script.py", line 9, in <module>
    sys.exit(tethys_command())
  File "C:\Miniconda3\envs\tethys\lib\site-packages\tethys_cli\__init__.py", line 67, in tethys_command
    args.func(args)
  File "C:\Miniconda3\envs\tethys\lib\site-packages\tethys_cli\docker_commands.py", line 830, in docker_command
    docker_init(containers=args.containers, defaults=args.defaults)
  File "C:\Miniconda3\envs\tethys\lib\site-packages\tethys_cli\docker_commands.py", line 709, in docker_init
    pull_docker_images(containers_to_install)
  File "C:\Miniconda3\envs\tethys\lib\site-packages\tethys_cli\docker_commands.py", line 677, in pull_docker_images
    container.pull()
  File "C:\Miniconda3\envs\tethys\lib\site-packages\tethys_cli\docker_commands.py", line 194, in pull
    pull_stream = self.docker_client.api.pull(self.image, stream=True)
  File "C:\Miniconda3\envs\tethys\lib\site-packages\docker\api\image.py", line 429, in pull
    self._raise_for_status(response)
  File "C:\Miniconda3\envs\tethys\lib\site-packages\docker\api\client.py", line 270, in _raise_for_status
    raise create_api_error_from_http_exception(e) from e
  File "C:\Miniconda3\envs\tethys\lib\site-packages\docker\errors.py", line 39, in create_api_error_from_http_exception
    raise cls(e, response=response, explanation=explanation) from e
docker.errors.NotFound: 404 Client Error for http+docker://localnpipe/v1.41/images/create?tag=4.6.20-SNAPSHOT&fromImage=unidata%2Fthredds-docker: Not Found ("manifest for unidata/thredds-docker:4.6.20-SNAPSHOT not found: manifest unknown: manifest unknown")

Screenshots N/A

Tethys Environment Information Include output from these commands:

Additional context Add any other context about the problem here.

swainn commented 1 year ago

fixed in #940 and hotfixed in #939

swainn commented 1 year ago

Unidata has now removed the threds-docker:4.6.20 image from their Docker registry. They also seem to only be maintaining only tags for the current released version and the next snapshot with no latest version. This practice will make it very difficult to maintain support in the tethys docker cli. Possible work arounds: