Докер - контейнер Alpine Elixir имеет неудовлетворительные ограничения

У меня есть этот Dockerfile для моего приложения Phoenix. При запуске продвижения с помощью Semaphore CI мое развертывание завершается неудачно и возвращает эту ошибку:

ERROR: unsatisfiable constraints:
  libssl1.0 (missing):
    required by: world[libssl1.0]
  pdftk (missing):
    required by: world[pdftk]

Почему он не может получить эти два пакета?

1 ответ

Решение

erlang:20-alpine изображение ( Dockerfile), которое используется в качестве базы для elixir:1.6.6-alpine ( Dockerfile), недавно был обновлен с Alpine 3.8 до 3.9 ( коммит Github).

Следующее изменилось между Alpine 3.8 и 3.9:

  • libssl1.0 пакет был удален и заменен libssl1.1,

  • pdftk Пакет был удален в 3.9 и доступен только в edge ветка community хранилище (и более старые альпийские ветви).

libssl:

Это легко исправить: просто замените libssl1.0 пакет с libssl1.1,

Pdftk:

pdftk более проблематично. Это зависит от libgcj6 среда выполнения Java для GCC 6. Однако среда выполнения Java была полностью удалена из GCC 8 и далее. libgcj6 является средой выполнения Java для GCC 6 и не совместима с GCC 8. Установка libgcj6 также тянет GCC 6 C++ во время выполнения, libstdc++6 (6.4.0-r9),

Попытка установить pdftk вместе с libgcj6, например:

RUN apk add --no-cache libgcj6 pdftk --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community

Сбой с:

ERROR: unsatisfiable constraints:
  so:libgcj.so.17 (missing):
    required by: pdftk-2.02-r1[so:libgcj.so.17]

К сожалению, я не знаком с обходным путем, в настоящее время.

Для этой проблемы есть активный открытый билет Alpine: https://bugs.alpinelinux.org/issues/10136, поэтому стоит следить за возможными обновлениями.

Другие вопросы по тегам