dockerfile安装ImageMagick和ffmpeg问题记录和解决

概述

        因为最近项目需要所以在docker内部安装ImageMagick和ffmpeg,遇到了一些问题,一方面是用于记录,一方面是给大家进行分享,如果大家也遇到了这类的问题,希望的我的这些经验和教训可以帮助到大家,下面会分开给大家说明在安装ImageMagick和ffmpeg时遇到的问题和对应的解决办法。

1、ImageMagick安装后使用报错问题

dockerfile安装ImageMagick和ffmpeg问题记录和解决_第1张图片

 在调用下面指令时报错

txt = (moviepy.editor.TextClip(sentences, fontsize=13, font='SimHei', size=(w - 20, 40), align='center', color='white',stroke_width=1.2).set_position((10, h - 60)).set_duration(span).set_start(start))

解决方法

在安装时是通过apt-get -y install imagemagick指令,安装后会在/etc/ImageMagick-6路径下存在policy.xml文件,修改policy.xml文件的内容,找到下面这行

修改为下面的格式,或者注释掉也行

再次运行就能够正常运行了!!!

那么,怎么在dockerfle中实现呢,我是通过一个比较笨的方法实现的,就是在本地写好一个修改好的policy.xml文件,然后再将这个文件复制到/etc/ImageMagick-6/路径下

在dockerfile中实现时,要先给policy.xml赋予权限,代码如下

RUN sudo apt-get install imagemagick -y
# 赋予policy.xml权限
RUN sudo chmod +777 /etc/ImageMagick-6/policy.xml
COPY policy.xml /etc/ImageMagick-6/

2、安装ffmpeg由于镜像源问题导致安装失败问题

报错如下:一般是IP问题导致的Failed

W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages 404 Not Found [IP: 151.101.140.204 80]

首先说一下原因,原因在于docker用的是阿里云的镜像, 但是阿里云的镜像里面没有ffmpe, 所以要强制切换源,那么怎么换源呢,之前在网上查了一些别人的解决方案,但是试过之后又出现了其他的报错,再加上看见下面有人评论说这种(链接)方法在下载是会很慢,所以就放弃了这种思路,转而使用了另一种方法,速度上应该是挺快的,下面说一下我的解决方法。

修改apt的配置文件,在/etc/apt/sources.list中,同样的,在本地写好一个sources.list文件,将下面的内容复制到本地sources.list中,是清华源

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

之后同样的将改文件复制到/etc/apt/路径下进行覆盖,再次安装就行了。代码如下:

RUN sudo chmod +777 /etc/apt/sources.list
COPY sources.list /etc/apt/
RUN sudo apt-get update
RUN sudo apt-get -y install ffmpeg

你可能感兴趣的:(docker,java,前端,服务器)