Docker-Alpine Elixir容器具有无法满足的约束

时间:2019-03-29 12:18:54

标签: docker elixir alpine semaphore-ci

我的Phoenix应用程序有这个Dockerfile。使用Semaphore CI运行促销时,我的部署失败并返回以下错误:

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

为什么无法获取这两个软件包?

1 个答案:

答案 0 :(得分:4)

用作erlang:20-alpineDockerfile)基础的elixir:1.6.6-alpine图像(Dockerfile)已从Alpine 3.8更新为3.9({{3 }}。

以下内容已在Alpine 3.8和3.9之间更改:

  • libssl1.0软件包已被删除,并由Github commit取代。

  • libssl1.1软件包已在3.9中删除,仅在edge分支community存储库(和较旧的Alpine分支)中可用。

libssl:

这一问题很容易解决:只需将libssl1.0包替换为libssl1.1

pdftk:

pdftk更具问题。它取决于libgcj6(GCC 6的Java运行时)。 但是,Java运行时已从GCC 8及更高版本中完全删除。 libgcj6是GCC 6的Java运行时,与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开放票证:pdftk,因此值得关注可能的更新。