
Ich habe also dieses Dockerfile, das versucht, ImageMagick auf folgende Weise zu installieren:
FROM ruby:2.4-alpine
...
RUN apk --update add imagemagick
...
file
Der Punkt ist, dass der Container das Dienstprogramm (zur Inhaltstyperkennung) nicht erkennt .
Lokale Umgebung (Mac OSX, Imagemagick mit Brew installiert):
> file --version
file-5.25
magic file from /usr/share/file/magic
> convert --version
Version: ImageMagick 6.9.9-5 Q16 x86_64 2017-08-03
http://www.imagemagick.org
Copyright: © 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC Modules
Delegates (built-in): bzlib freetype jng jpeg ltdl lzma png tiff xml zlib
Docker Alpine-Container (Zugriff auf die Shell über docker exec -it CONTAINER_ID
):
> file --version
sh: file: not found
> convert --version
Version: ImageMagick 6.9.5-9 Q16 x86_64 2016-10-21
http://www.imagemagick.org
Copyright: Copyright (C) 1999-2016 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher Modules
Delegates (built-in): fontconfig freetype gslib jng jpeg lcms ltdl png ps tiff webp zlib
Habe auch versucht, imagemagick-dev
es einzeln zu installieren, und die Kombination aus beiden funktionierte ohne Erfolg (sollte keinen Unterschied machen, da das Erste von dem Letzteren abhängig ist, denke ich).
Die Frage ist,wie kann ich das im Alpine-Container installieren?Ich glaube, ich übersehe etwas, komme aber nicht dahinter.
Übrigens kann ich mich außer file
auf die Inhaltstyperkennung nicht auf eine andere Funktion verlassen, da ich ein Framework verwende, das dies explizit nutzt.
Antwort1
Hier ist eine ähnliche Frage/Antwort, die mir bei Stackoverflow geholfen hat:
ImageMagick-Installation in Docker Alpine
Das Dateidienstprogramm ist nicht Teil von ImageMagick, sondern ein Standarddienstprogramm. Weitere Informationen dazu finden Sie auf Wikipedia:
Datei (Befehl).
Unter Alpine Linux können Sie es mit installieren apk add --no-cache file
. Wie in der folgenden Terminalsitzung gezeigt:
/ # file /etc/group
/bin/sh: file: not found
/ # apk add --no-cache file
fetch http://dl-cdn.alpinelinux.org/alpine/v3.6/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.6/community/x86_64
/APKINDEX.tar.gz
(1/2) Installing libmagic (5.32-r0)
(2/2) Installing file (5.32-r0)
Executing busybox-1.26.2-r5.trigger
OK: 9 MiB in 13 packages
/ # file /etc/group
/etc/group: ASCII text
/ #