docker安装ffmpeg,alpine/ubuntu安装ffmpeg

这段时间项目中用到了ffmpeg,我们的项目是通过docker来部署的,我的tomcat基础镜像有的是Ubuntu,还有的是alpine,就遇到了一个问题,有时候会安装失败。接下来给大家带来安装教程-docker环境下。

一、alpine安装ffmpeg

alpine镜像比较小,所以后面在docker方面可能用的比较多。

alpine软件包管理工具apk的基本使用

#查询openssh相关的软件包
apk search  openssh   
#安装一个软件包
apk add  xxx   
#删除已安装的xxx软件包
apk del  xxx
#获取更多apk包管理的命令参数
apk --help
#比如安装常用的网络相关工具:
#更新软件包索引文件
apk update
#用于文本方式查看网页,用于测试http协议
apk add curl

Alpine国内安装源

alpine安装的安装源貌似国内访问不到,我们服务器是访问不到的,需要更换为国内源,推荐使用阿里云的源。

Alpine的源文件为:

/etc/apk/repositories

#可以编辑源文件 /etc/apk/repositories,

#采用国内阿里云的源,文件内容为:
https://mirrors.aliyun.com/alpine/v3.6/main/
https://mirrors.aliyun.com/alpine/v3.6/community/

如果采用中国科技大学的源,文件内容为:

https://mirrors.ustc.edu.cn/alpine/v3.6/main/
https://mirrors.ustc.edu.cn/alpine/v3.6/community/

docker中使用

1、这个是安装源的地址,因为默认的源无法使用,所以就把它注释掉,然后加入阿里的安装源

sources.list

#http://dl-cdn.alpinelinux.org/alpine/v3.7/main
#http://dl-cdn.alpinelinux.org/alpine/v3.7/community
https://mirrors.aliyun.com/alpine/v3.6/main/
https://mirrors.aliyun.com/alpine/v3.6/community/

2、编写Dockerfile,结合自己的项目进行修改。

先把sources.list拷贝到tomcat目录下,然后用cat把源文件覆盖,记住这里 cat 后面是一个 > 哦,如果是两个 >> 就是从后边追加。一个表示是拷贝文件里的内容,从第一行开始拷贝,覆盖之前的内容。更换完安装源后,要先update一下,然后安装ffmpeg,因为ffmpeg依赖yasm ,所以要先安装yasm 。

Dockerfile

FROM frolvlad/alpine-oraclejdk8

#更改安装源
COPY sources.list $CATALINA_HOME/
RUN cat $CATALINA_HOME/sources.list > /etc/apk/repositories

#更新源,安装yasm ffmpeg
RUN apk update
RUN apk add yasm && apk add ffmpeg

ADD ./trcloud-personal-note-1.0.0.jar  /trcloud-personal-note.jar
EXPOSE 8971
CMD ["java","-jar","/trcloud-personal-note.jar"]

注意:因为windows文件编码和linux编码不同,所以尽量在linux下创建Dockerfile和sources.list,然后用vi编辑。

二、ubuntu安装ffmpeg

1、这个是阿里的安装源

*sources.list *

deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse  
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse  
##测试版源  
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse  
# 源码  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse  
##测试版源  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse 

2、编写Dockerfile

下面是我们的Dockerfile,结合自己的项目进行修改。更换完安装源后,要先update一下,然后安装ffmpeg,因为ffmpeg依赖yasm ,所以要先安装yasm 。

cat $CATALINA_HOME/sources.list >> /etc/apt/sources.list

注意:这块是 >> ,因为只用阿里的源安装ffmpeg会失败,所以要保留原来的源地址,只是把阿里的源地址追加到原来的源后边。

Dockerfile

FROM tomcat:7.0.76-jre8
MAINTAINER bettysboy "yasaka@trgis.com"

#设置Java环境变量
ENV JAVA_OPTS -server -Xms512M -Xmx2048M -Duser.timezone="Asia/Shanghai"

#配置服务器参数
COPY server.xml $CATALINA_HOME/conf/server.xml
COPY web.xml $CATALINA_HOME/conf/web.xml

#拷贝程序包到服务器
COPY akymbq.war $CATALINA_HOME/webapps/webapp.war
RUN rm -rf $CATALINA_HOME/webapps/ROOT

#更改安装源
COPY sources.list $CATALINA_HOME/
RUN cat $CATALINA_HOME/sources.list >> /etc/apt/sources.list

#更新源,安装yasm ffmpeg
RUN apt-get update
RUN apt-get -y --force-yes install yasm ffmpeg
EXPOSE 8080
作者:Jeebiz  创建时间:2023-03-19 22:36
最后编辑:Jeebiz  更新时间:2023-04-27 11:23