tarantool / docker

Docker images for tarantool database
https://hub.docker.com/r/tarantool/tarantool
52 stars 25 forks source link

Fix packages installation on alpine 3.9 #195

Closed avtikhon closed 4 years ago

avtikhon commented 4 years ago

Found that apk installation fails using '--virtual' option. Also found that there were two different degradations in Alpine 3.9 [1], one of which really caused the issue [2]. Degradations where fixed in Alpine 3.11 and backported in Alpine 3.10. To fix the issue on the current Alpine 3.9 was used the workaround - virtual package was named with additional suffix to have uniq naming.

Closes #120 Closes #169 Closes #189

Co-authored-by: Alexander Turenko alexander.turenko@tarantool.org

[1] - https://github.com/tarantool/docker/pull/195#issuecomment-713726189 [2] - https://gitlab.alpinelinux.org/alpine/apk-tools/-/issues/9651

Totktonada commented 4 years ago

Side note: mariadb is not related to postgresql anyhow. Let's split those changes.

avtikhon commented 4 years ago

Side note: mariadb is not related to postgresql anyhow. Let's split those changes.

Change split to the new patch in separate branch.

Totktonada commented 4 years ago

I found that there are two different problems around apk-tools:

  1. Clash of virtual packages created within one second. Issue #10648. Degraded in apk-tools-v2.10.3-6-g37fbafc, fixed in apk-tools-v2.10.4-1-gb45415b.
  2. Inability to add a package to a virtual package. Issue #9651. Degraded in apk-tools-v2.10.1-10-gb06e3b9, fixed in apk-tools-v2.10.4-1-gb45415b.

Let's check apk versions in different Apline versions:

Alpine docker tag Apline version apk-tools version Is affected by #10648? Is affected by #9651?
3.5 3.5.3 2.6.10 No. No.
3.6 3.6.5 2.7.6 No. No.
3.7 3.7.3 2.10.1 No. No.
3.8 3.8.5 2.10.1 No. No.
3.9 3.9.6 2.10.3 No. Yes.
3.10 3.10.5 2.10.4 No. [^1] No. [^1]
3.11 3.11.6 2.10.5 No. No.
3.12 3.12.0 2.10.5 No. No.

[^1]: The fix was backported.

So, we don't need to workaround first problem (don't need to add sleep 2), but should workaround the second one (use different virtual package names). Your fix looks correct, but the links in the commit message should be updated.