[Sound-open-firmware] [PATCH 1/3] scripts: docker: simplify docker build
From: Pan Xiuli xiuli.pan@linux.intel.com
Merege commands to reduce layers and remove some useless layers.
Signed-off-by: Pan Xiuli xiuli.pan@linux.intel.com --- scripts/README.docker | 2 ++ scripts/docker_build/Dockerfile | 24 ++++++------------------ 2 files changed, 8 insertions(+), 18 deletions(-)
diff --git a/scripts/README.docker b/scripts/README.docker index e2f189f..468ae25 100644 --- a/scripts/README.docker +++ b/scripts/README.docker @@ -22,6 +22,8 @@ cd scripts/docker_build After the container is built, it can be used to run the scripts.
To build for baytrail: +./scripts/docker-run.sh ./scripts/xtensa-build-all.sh -l byt +or (may need password test0000 for rimage install) ./scripts/docker-run.sh ./scripts/xtensa-build-all.sh byt
To rebuild the topology in soft.git: diff --git a/scripts/docker_build/Dockerfile b/scripts/docker_build/Dockerfile index 8dede3c..cf55ab1 100644 --- a/scripts/docker_build/Dockerfile +++ b/scripts/docker_build/Dockerfile @@ -36,10 +36,8 @@ RUN apt-get -y update && \ gperf \ help2man \ libncurses5-dev \ - libncurses5-dev \ libssl-dev \ libtool \ - libtool \ libtool-bin \ pkg-config \ software-properties-common \ @@ -68,9 +66,9 @@ cd /root/alsa-build/alsa-lib && ./gitcompile && make install && \ cd /root/alsa-build/alsa-utils && ./gitcompile && make install && \ cd /root/ && rm -rf alsa-build
-RUN useradd --create-home -d /home/sof -u $UID -G sudo sof -RUN echo "sof:test0000" | chpasswd -RUN adduser sof sudo +# Set up sof user +RUN useradd --create-home -d /home/sof -u $UID -G sudo sof && \ +echo "sof:test0000" | chpasswd && adduser sof sudo ENV HOME /home/sof
# pull all sof repositories that are needed @@ -118,21 +116,11 @@ RUN for arch in byt hsw bxt cnl; do \ make distclean; \ done
-USER sof -WORKDIR /home/sof/sof.git -RUN ./autogen.sh -RUN ./configure --enable-rimage -RUN make -USER root -RUN make install
# Create direcroties for the host machines sof/soft directories to be mounted. -USER sof -RUN mkdir -p /home/sof/work/sof -RUN mkdir -p /home/sof/work/soft +RUN mkdir -p /home/sof/work/sof.git && \ + mkdir -p /home/sof/work/soft.git +
USER sof WORKDIR /home/sof/work/sof.git/ - -# Default to building all. -CMD ./scripts/xtensa-build-all.sh
From: Pan Xiuli xiuli.pan@linux.intel.com
Ubuntu 18.04 use gcc-7 as default, use it to reduce alternative gcc installation layer.
Signed-off-by: Pan Xiuli xiuli.pan@linux.intel.com --- scripts/docker_build/Dockerfile | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-)
diff --git a/scripts/docker_build/Dockerfile b/scripts/docker_build/Dockerfile index cf55ab1..f10ab29 100644 --- a/scripts/docker_build/Dockerfile +++ b/scripts/docker_build/Dockerfile @@ -14,7 +14,7 @@ # docker run -it -v <insert sof dir here>:/home/sof/work/sof.git -v <soft git dir>:/home/sof/work/soft.git --user `id -u` sof ./incremental.sh #
-FROM ubuntu:16.04 +FROM ubuntu:18.04 ARG UID=1000
# Set up proxy from host @@ -46,13 +46,6 @@ RUN apt-get -y update && \ udev \ wget
-# Use gcc/g++ 7. -RUN add-apt-repository ppa:ubuntu-toolchain-r/test -y -RUN apt-get -y update -RUN apt-get install -y gcc-7 g++-7 -RUN apt-get clean -RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7 - # Use ToT alsa utils for the latest topology patches. RUN mkdir -p /root/alsa-build && cd /root/alsa-build && \ if [ "x$http_proxy" = "x" ]; then \
On Tue, 2018-06-12 at 00:01 +0800, Xiuli Pan wrote:
From: Pan Xiuli xiuli.pan@linux.intel.com
Ubuntu 18.04 use gcc-7 as default, use it to reduce alternative gcc installation layer.
Applied, lets keep this at 18.04 until next LTS or unless delta gets to big.
Thanks
Liam
From: Pan Xiuli xiuli.pan@linux.intel.com
Merge the build and remove src to reduce the layer size.
Signed-off-by: Pan Xiuli xiuli.pan@linux.intel.com --- scripts/docker_build/Dockerfile | 62 +++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 39 deletions(-)
diff --git a/scripts/docker_build/Dockerfile b/scripts/docker_build/Dockerfile index f10ab29..9c6ce85 100644 --- a/scripts/docker_build/Dockerfile +++ b/scripts/docker_build/Dockerfile @@ -64,50 +64,34 @@ RUN useradd --create-home -d /home/sof -u $UID -G sudo sof && \ echo "sof:test0000" | chpasswd && adduser sof sudo ENV HOME /home/sof
-# pull all sof repositories that are needed +# build cross compiler USER sof -RUN git clone git://git.alsa-project.org/sound-open-firmware.git /home/sof/sof.git -RUN git clone git://git.alsa-project.org/sound-open-firmware-tools.git /home/sof/soft.git -RUN git clone https://github.com/01org/osadsp-crosstool-ng.git /home/sof/ct-ng.git -RUN git clone https://github.com/jcmvbkbc/newlib-xtensa.git /home/sof/newlib-xtensa.git
-USER sof -RUN mkdir -p /home/sof/bin -WORKDIR /home/sof/soft.git -RUN ./autogen.sh -RUN ./configure --prefix=/home/sof/bin -RUN make -RUN make install - -ENV PATH="/home/sof/bin/bin:${PATH}" +RUN cd /home/sof && git clone https://github.com/01org/osadsp-crosstool-ng.git /home/sof/ct-ng.git && \ +cd ct-ng.git && ./bootstrap && ./configure --prefix=`pwd` && \ + make && make install && \ + for arch in byt hsw bxt cnl; do \ + ./ct-ng xtensa-${arch}-elf && \ + ./ct-ng build ; \ + done && \ + mkdir -p /home/sof/work/ && \ + cp -r builds/xtensa-*-elf /home/sof/work/ && cd /home/sof/ && sudo rm -rf ct-ng.git
-USER sof -WORKDIR /home/sof/ct-ng.git -RUN for arch in byt hsw bxt cnl; do \ - ./bootstrap && \ - ./configure --prefix=`pwd` && \ - make && \ - make install && \ - ./ct-ng xtensa-${arch}-elf && \ - ./ct-ng build && \ - make distclean; \ -done +ENV PATH="/home/sof/work/xtensa-byt-elf/bin:${PATH}" +ENV PATH="/home/sof/work/xtensa-hsw-elf/bin:${PATH}" +ENV PATH="/home/sof/work/xtensa-bxt-elf/bin:${PATH}" +ENV PATH="/home/sof/work/xtensa-cnl-elf/bin:${PATH}"
-ENV PATH="/home/sof/ct-ng.git/builds/xtensa-byt-elf/bin:${PATH}" -ENV PATH="/home/sof/ct-ng.git/builds/xtensa-hsw-elf/bin:${PATH}" -ENV PATH="/home/sof/ct-ng.git/builds/xtensa-bxt-elf/bin:${PATH}" -ENV PATH="/home/sof/ct-ng.git/builds/xtensa-cnl-elf/bin:${PATH}" - -USER sof -WORKDIR /home/sof/newlib-xtensa.git -RUN git checkout -b xtensa origin/xtensa -RUN for arch in byt hsw bxt cnl; do \ - ./configure --target=xtensa-${arch}-elf \ +RUN cd /home/sof && git clone https://github.com/jcmvbkbc/newlib-xtensa.git newlib-xtensa.git && \ + cd newlib-xtensa.git && git checkout -b xtensa origin/xtensa && \ + for arch in byt hsw bxt cnl; do \ + ./configure --target=xtensa-${arch}-elf \ --prefix=/home/sof/work/xtensa-root && \ - make && \ - make install && \ - make distclean; \ -done + make && \ + make install && \ + make distclean; \ + done && \ + cd /home/sof/ && sudo rm -rf newlib-xtensa.git
# Create direcroties for the host machines sof/soft directories to be mounted.
participants (2)
-
Liam Girdwood
-
Xiuli Pan