How can I install ffmpeg to my docker image - docker

I have setup a docker image in my Windows 10 Machine.
Can you please tell me how can I install ffmpeg to that docker image?

apt-get install ffmpeg
As of 2019, this seems to work, just fine on Docker.
Dockerfile
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get install -y ffmpeg

In your dockerfile you can write this command to add required repo, update your repository and then install ffmpeg.
Though I am not sure if this library still exist I just modified this Link for Docker you can follow same rules to install another package.
RUN set -x \
&& add-apt-repository ppa:mc3man/trusty-media \
&& apt-get update \
&& apt-get dist-upgrade \
&& apt-get install -y --no-install-recommends \
ffmpeg \

If you stop with select of geographic area on Ubuntu 18.04 or above, you can install it by specifying ENV DEBIAN_FRONTEND=noninteractive as shown below.
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y ffmpeg

As of July 2022, this works for Dockerfile, well at least it worked for me.
RUN apt-get -y update && apt-get -y upgrade && apt-get install -y --no-install-recommends ffmpeg
Just to let the community know.

Related

Docker Compose: Apt-utils installation problem

I am trying to build a new image in Docker Compose but the following problem occurs
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/a/apt/apt-utils_2.4.7_amd64.deb 404 Not Found [IP: ]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
The command '/bin/sh -c apt-get install -y apt-utils' returned a non-zero code: 100
ERROR: Service 'nginx-service' failed to build : Build failed
In my Dockerfile I'm running: RUN apt-get install -y apt-utils and with --fix-missing.
None of the related questions or other solutions helped me and I've been stuck for quite a while. What am I missing?
Thanks!
EDIT: The whole Dockerfile
FROM ubuntu:latest
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y nginx
RUN apt-get clean
RUN apt-get install -y curl
RUN apt-get install -y unzip
RUN apt-get install -y wget
RUN DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y install tzdata
RUN apt-get install -y php php-xml php-curl php-fpm php-mysql
RUN apt-get install -y apt-utils --fix-missing
RUN apt-get install -y php-zip --fix-missing
RUN apt-get install -y php-gd --fix-missing
RUN apt-get install -y mysql-server
RUN curl -sS https://getcomposer.org/installer -o composer-setup.php
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer
RUN apt-get install -y nano
RUN apt-get install -y mc
RUN apt-get install -y systemctl
RUN systemctl start nginx.service
usually , when we are building a new image, we use update then install like this
RUN apt-get update && apt-get install -y apt-utils
This will update apt source list and will make the package available to install.
Addibg this to your Dockerfile should fix the issue.
If you want to install many at once you can add the packages like the following :
RUN apt-get update && apt-get install -y \
bzr \
cvs \
git \
mercurial \
subversion \
Building the image like this:
docker-compose build --no-cache
worked for me

Dockerfile Ubuntu with interactive install

I'm making this post to you, because I'm currently doing a docker file from a UBUNTU 20.04.
In my dockerfile I run installs which for some require multiple choice questions with "interactive" answer.
So I wanted to know how I could automate the thing.
I leave you attached my docker file, I put a hash in front of the packages causing me problem.
RUN apt-get update
RUN rm -f /etc/localtime && ln -s /usr/share/zoneinfo/Europe/Paris /etc/localtime
RUN apt-get install apache2 -y
RUN apt install gnupg
RUN apt-get install wget
RUN cd /tmp
RUN wget https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb
#RUN apt install ./mysql-apt-config_0.8.20-1_all.deb -y
RUN apt-get install mysql-server -y
RUN apt-get install mysql-client
RUN apt-get install php -y
RUN apt-get install vim -y
RUN apt-get install nano
RUN apt-get install pv
RUN apt-get install php-mysql -y
RUN apt-get install libapache2-mod-php
RUN apt-get install git-core -y
RUN apt-get install unoconv -y
RUN apt-get install poppler-utils
#RUN apt-get install ttf-mscorefonts-installer -y
#RUN apt-get install wkhtmltopdf -y
#RUN apt-get install backup-manager
RUN apt-get install xvfb
RUN apt-get install php-imap -y
RUN apt-get install php-intl -y
#RUN apt-get install php-mcrypt
RUN apt-get install curl
RUN apt-get install php-curl -y
RUN apt-get install openssl
RUN apt-get install ssl-cert
RUN apt-get install php-mbstring -y
RUN apt-get install php-xml -y
RUN apt-get install php-imagick -y
RUN apt-get install php-zip -y
#RUN apt-get install postfix -y```
Thank you for your help ;D
add the following before calling apt-get
ENV DEBIAN_FRONTEND=noninteractive
or prepend DEBIAN_FRONTEND=noninteractive before apt-get command, such as DEBIAN_FRONTEND=noninteractive apt-get install curl -y

Docker build stops on software-properties-common when run with `apt update`

I have 2 dockerfiles:
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y \
software-properties-common \
python3
FROM ubuntu:20.04
RUN apt-get update
RUN apt-get install -y software-properties-common
RUN apt-get update && apt-get install -y \
python3
The thing is: when I run the first of them (with docker build) the build process hangs on:
The software-properties-common package is asking me about the geographical area - I cannot provide any input, it is not allowed when building images, I suppose.
However, when I build the second dockerfile, this problem does not occur. I'm curious - why is that?
Add the following line in your Dockerfile and build again.
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
I found that running
ln -fs /usr/share/zoneinfo/UTC /etc/localtime
before setting DEBIAN_FRONTEND=noninteractive worked for me. (You'd want to replace the bit after zoneinfo with whatever is applicable for you.)
If you need it to be set dynamically, [this answer] (https://stackoverflow.com/a/63153978/1995015) suggests calling out to a website that can provide that.

head: cannot open '/etc/ssl/certs/java/cacerts' for reading: No such file or directory in Debian Image Java 11

I have written a dockerfile for creating selenium image with debian base image
While I am installing JDK11,I am seeing these errors.
RUN apt-get upgrade
RUN apt-get update
RUN apt-get -y install apt-transport-https curl
RUN apt-get -qqy --no-install-recommends install bzip2
RUN apt-get -qqy --no-install-recommends install ca-certificates
RUN mkdir -p /usr/share/man/man1
RUN apt-get -qqy --no-install-recommends install openjdk-11-jre-headless
RUN apt-get -qqy --no-install-recommends install ca-certificates-java
RUN dpkg --list | grep java
RUN apt-get -qqy --no-install-recommends install sudo
RUN apt-get -qqy --no-install-recommends install unzip
RUN apt-get -qqy --no-install-recommends install gdebi-core
COPY files/chrome/google-chrome_amd64.deb /google-chrome_amd64.deb
RUN gdebi --n /google-chrome_amd64.deb
RUN apt-get -qqy install xvfb
RUN rm -rf /var/lib/apt/lists/* /var/cache/apt/*
RUN echo $(ls ./usr/lib/jvm/java-11-openjdk-amd64/lib/security)
This is the docker file i am using
It's some layering issue I read somewhere else online. Don't know much about that. But that pointed me toward a usable fix: remove the folder and recreate it.
rmdir /etc/ssl/certs/java
mkdir /etc/ssl/certs/java
Now the install should work.

How to convert an Ubuntu package/repository to Alpine in a Dockerfile?

Currently I have this Dockerfile
FROM ubuntu:18.04
# https://github.com/tesseract-shadow/tesseract-ocr-re
RUN apt-get update && apt-get install -y software-properties-common && add-apt-repository -y ppa:alex-p/tesseract-ocr
RUN apt-get update && apt-get install -y tesseract-ocr-all
RUN apt-get install -y git build-essential cmake
RUN apt-get install -y ffmpeg
# Install Node and NPM
RUN apt-get install nodejs -y && apt-get install npm -y
The size of the image is too big so I searched for alternatives and found about Alpine.
I'm stuck with this one
FROM alpine
RUN apk add --update ffmpeg cmake nodejs npm
Looking at the aline edge repository, I can't seem to find tesseract-ocr-all and no idea how to do apt-get install -y software-properties-common && add-apt-repository -y ppa:alex-p/tesseract-ocr in alpine.
Are there any resources that can help me through this? Should I make my own Alpine image for those packages/repositories?
The alpine package name is tesseract-ocr, you can check here the releases or alpine repository.
FROM alpine
RUN apk add --update --no-cache ffmpeg cmake nodejs npm tesseract-ocr
If you are interested in the beta version you may check here.
Always try to add --no-cache option allows to not cache the index locally, which keeps containers small.

Resources