
그래서 다음과 같은 방법으로 ImageMagick을 설치하려고 시도하는 Dockerfile이 있습니다.
FROM ruby:2.4-alpine
...
RUN apk --update add imagemagick
...
요점은 컨테이너가 file
유틸리티(콘텐츠 유형 감지용)를 인식하지 못한다는 것입니다.
로컬 환경(Mac OSX, Brew와 함께 imagemagick 설치):
> 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 컨테이너(를 사용하여 셸에 액세스 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
또한 imagemagick-dev
자체적으로 설치를 시도했는데 둘 다 운 없이 결합되었습니다(첫 번째 것이 후자의 종속성이므로 차이가 없어야 한다고 생각합니다).
질문은 ~이야,이것을 Alpine 컨테이너에 어떻게 설치할 수 있나요?뭔가 빠진 것 같은데 알 수가 없네요.
그건 그렇고, file
나는 이것을 명시적으로 사용하는 프레임워크를 사용하고 있기 때문에 콘텐츠 유형 감지 이외의 다른 기능에 의존할 수 없습니다.
답변1
다음은 stackoverflow에 도움이 된 유사한 Q/A입니다.
docker alpine에 imagemagick 설치
파일 유틸리티는 ImageMagick의 일부가 아니며 표준 유틸리티입니다. 이에 대한 자세한 내용은 Wikipedia에서 확인할 수 있습니다.
파일(명령).
Alpine Linux에서는 apk add --no-cache file
. 다음 터미널 세션에 표시된 대로:
/ # 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
/ #