From 877be11d30a0ffae8930e11e675ae3db970d2246 Mon Sep 17 00:00:00 2001 From: Pantyusha Date: Sun, 2 Apr 2017 16:06:24 +0300 Subject: [PATCH] Dockerfile added --- Dockerfile | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 12 +++++++++ 2 files changed, 85 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c22bda2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,73 @@ +# Minimal docker container to build Nesca + +FROM ubuntu:14.04 +MAINTAINER Pantyusha + +ENV DEBIAN_FRONTEND noninteractive +ENV QT_PATH /opt/Qt +ENV QT_DESKTOP $QT_PATH/5.4/gcc_64 +ENV PATH $QT_DESKTOP/bin:$PATH + +# Install updates & requirements: +# * git, openssh-client, ca-certificates - clone & build +# * curl, p7zip - to download & unpack Qt bundle +# * build-essential, pkg-config, libgl1-mesa-dev - basic Qt build requirements +# * libsm6, libice6, libxext6, libxrender1, libfontconfig1 - dependencies of Qt bundle run-file +RUN apt-get -qq update && apt-get -qq dist-upgrade && apt-get install -qq -y --no-install-recommends \ + git \ + wget \ + make \ + curl \ + openssh-client \ + ca-certificates \ + p7zip \ + build-essential \ + pkg-config \ + libgl1-mesa-dev \ + libsm6 \ + libssh-dev \ + libice6 \ + libxext6 \ + libxrender1 \ + libfontconfig1 \ + && apt-get -qq clean + +# Update curl +RUN apt-get -qq build-dep -y curl \ + && wget http://curl.haxx.se/download/curl-7.50.2.tar.bz2 \ + && tar -xvjf curl-7.50.2.tar.bz2 \ + && cd curl-7.50.2 \ + && ./configure \ + && make install + +# Install Qt 5.4.2 +RUN mkdir -p /tmp/qt \ + && curl -Lo /tmp/qt/installer.run 'https://download.qt.io/archive/qt/5.4/5.4.2/qt-opensource-linux-x64-5.4.2.run' \ + && chmod 755 /tmp/qt/installer.run && /tmp/qt/installer.run --dump-binary-data -o /tmp/qt/data \ + && mkdir $QT_PATH && cd $QT_PATH \ + && 7zr x /tmp/qt/data/qt.54.gcc_64/5.4.2-0qt5_essentials.7z > /dev/null \ + && 7zr x /tmp/qt/data/qt.54.gcc_64/5.4.2-0qt5_addons.7z > /dev/null \ + && 7zr x /tmp/qt/data/qt.54.gcc_64/5.4.2-0icu_53_1_ubuntu_11_10_64.7z > /dev/null \ + && /tmp/qt/installer.run --runoperation QtPatch linux $QT_DESKTOP qt5 \ + && rm -rf /tmp/qt + +# Install multimedia dependencies +RUN apt-get -qq install -y --no-install-recommends qtmultimedia5-dev + +# Download Nesca +RUN cd /tmp && git clone https://github.com/pantyusha/nesca.git + +# Compile +RUN cd /tmp/nesca && qmake && make + +# Add group & user +RUN groupadd -r user && useradd --create-home --gid user user && echo 'user ALL=NOPASSWD: ALL' > /etc/sudoers.d/user + +# Move to user dir +RUN mv /tmp/nesca /home/user/ + +USER user +WORKDIR /home/user/nesca +ENV HOME /home/user + +ENTRYPOINT ["/home/user/nesca/nesca"] \ No newline at end of file diff --git a/README.md b/README.md index b396414..95927a0 100644 --- a/README.md +++ b/README.md @@ -32,4 +32,16 @@ sudo apt-get install qtmultimedia5-dev libqt5multimediawidgets5 libqt5multimedia git clone https://github.com/pantyusha/nesca.git qmake make +``` + +### Сборка с помощью Docker + +Можно сбилдить с помощью контейнера на основе Ubuntu 14.04, достаточно одной команды в директории с репозиторием: +``` +docker build . +``` + +Для запуска Nesca прямо из контейнера выполнить: +``` +docker run -i -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix ``` \ No newline at end of file