Linphone-SDK Dockerイメージの作成(Ubuntu 22.04)
Linphone-SDKのDockerコンテナ内でLinphoneアプリやflexisipサーバをビルドするため、Linphone-SDKのDockerイメージを作成します。必要なのは下記でダウンロードした docker-files
ディレクトリです。
$ git clone https://gitlab.linphone.org/BC/public/linphone-sdk.git
docker-files
ディレクトリ内の bc-dev-ubuntu-rolling
を参考にして Ubuntu 22.04
に対応した新規ファイルを作成します。
How to Switch to Ubuntu Rolling Rhino: A Rolling Release Version of Ubuntu
bc-dev-ubuntu-22-04-lts
FROM ubuntu:22.04
MAINTAINER Takanobu Fuse <ficusonline@gmail.com>
# Configure locale
RUN apt-get update && \
apt-get install -y locales && \
apt-get clean && \
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
locale-gen
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
ENV TZ=Europe/Paris
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ARG DEBIAN_FRONTEND=noninteractive
ENV SHELL=/bin/bash
#ENV PS1='\[\e[33m\]\u@bc-dev-ubuntu-22-04-lts>\[\e[0m\] '
# Install common general tools
RUN apt-get update && \
apt-get install -y nano sudo vim && \
apt-get clean
# Install development tools
RUN apt-get update && \
apt-get install -y alien at autoconf bison ccache clang cmake doxygen elfutils g++ gdb git graphviz intltool libtool lsb-release make nasm ninja-build openssh-client patch python3-pip python3-pystache python-six yasm && \
apt-get clean
# Install linphone & flexisip dependencies development packages
RUN apt-get update && \
apt-get install -y libasound2-dev libavcodec-dev libavutil-dev libbsd-dev libegl1-mesa-dev libglew-dev libgsm1-dev libjansson-dev libmariadb-dev-compat libmbedtls-dev libopus-dev libpq-dev libprotobuf-dev libpulse-dev libqt5svg5-dev libsnmp-dev libspeex-dev libspeexdsp-dev libsqlite3-dev libsrtp2-dev libssl-dev libswscale-dev libturbojpeg0-dev libv4l-dev libvpx-dev libxerces-c-dev libxml2-dev libxv-dev protobuf-compiler qt3d5-dev qtbase5-dev qtbase5-dev-tools qtchooser qt5-qmake qtconnectivity5-dev qtdeclarative5-dev qtdeclarative5-dev-tools qtdeclarative5-dev-tools qtquickcontrols2-5-dev qttools5-dev qttools5-dev-tools xsdcxx && \
apt-get clean
# Configure user bc
RUN useradd -ms /bin/bash bc && \
echo 'bc:cotcot' | chpasswd && \
echo 'bc ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER bc
WORKDIR /home/bc
COPY --chown=bc rpmmacros /home/bc/.rpmmacros
CMD bash
Makefikeの編集(Ubuntu 22.04のセクション追加)
.....
.....
ubuntu-22.04-LTS:
docker build -f bc-dev-ubuntu-22-04-lts -t $(BASE_NAME)/bc-dev-ubuntu:22.04 --rm .
.....
.....
ビルド(直接 docker build
コマンドでビルドしても構いません)
$ make ubuntu-22.04-LTS
Dockerイメージの確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-ubuntu 22.04 6ee9dee48674 47 minutes ago 2.28GB
任意のフォルダ(Linphoneまたはflexisipをビルドするフォルダ)内で上記イメージによるコンテナを起動
$ docker run --name linphone-sdk -v $PWD:/home/bc -it gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-ubuntu:22.04
bc@616cdfa4bb84:~$