Докер - контейнер Alpine Elixir имеет неудовлетворительные ограничения - PullRequest
2 голосов
/ 29 марта 2019

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

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

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

1 Ответ

6 голосов
/ 29 марта 2019

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

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

  • Пакет libssl1.0 удален и заменен на libssl1.1.

  • Пакет pdftk удален в 3.9 и доступен только в репозитории edge branch 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,, поэтому стоит следить за возможными обновлениями.

...