From 561f368a2f2bb9042878e40b1f34bf605b956a33 Mon Sep 17 00:00:00 2001 From: Martin Roth Date: Fri, 30 Dec 2016 17:00:19 -0700 Subject: util/docker: Update dockerfiles & build method All files: - Previously, various things were hardcoded into the docker containers that made it necessary to update the Dockerfile files for each new version of the sdk. Turn those into 'Variables" that are updated during the build step. Because the makefile is piping the dockerfile through the sed command and back into the docker build command, the normal docker "COPY" keyword doesn't work. coreboot-jenkins-node changes: - Run ssh-keygen -A to explicitly generate the ssh keys. This fixes an error: Could not load host key: /etc/ssh/ssh_host_dsa_key coreboot-sdk changes: - Remove apt-get upgrade command - The Dockerfile guide recommends not to run this. - Change libssl-dev to libssl1.0-dev. libssl-dev's header files won't build the Chrome-EC codebase. - Add libisl-dev, needed to build the riscv toolchain. - Build the toolchain using the -b option - Add environment variables containing the version and commit that the coreboot-sdk was built from. Makefile: - Update targets to use the version and commit variables Change-Id: I2c1376fe4b791da2a62fca11bc92c4774cbef1c8 Signed-off-by: Martin Roth Reviewed-on: https://review.coreboot.org/18001 Tested-by: build bot (Jenkins) Reviewed-by: Philipp Deppenwiese --- util/docker/coreboot-sdk/Dockerfile | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'util/docker/coreboot-sdk/Dockerfile') diff --git a/util/docker/coreboot-sdk/Dockerfile b/util/docker/coreboot-sdk/Dockerfile index cb0023c063..feaf8434ba 100644 --- a/util/docker/coreboot-sdk/Dockerfile +++ b/util/docker/coreboot-sdk/Dockerfile @@ -1,26 +1,39 @@ +# This dockerfile is not meant to be used directly by docker. The +# {{}} varibles are replaced with values by the makefile. Please generate +# the docker image for this file by running: +# +# make coreboot-sdk +# +# Variables can be updated on the make command line or left blank to use +# the default values set by the makefile. +# +# SDK_VERSION is used to name the version of the coreboot sdk to use. +# Typically, this corresponds to the toolchain version. This +# is used to identify this docker image. +# DOCKER_COMMIT is the coreboot Commit-ID to build the toolchain from. + FROM debian:sid -MAINTAINER Martin Roth +MAINTAINER Martin Roth RUN \ useradd -p locked -m coreboot && \ apt-get -qq update && \ - apt-get -qq upgrade && \ apt-get -qqy install gcc g++ make patch python diffutils bison flex \ git doxygen ccache subversion p7zip-full unrar-free \ m4 wget curl bzip2 vim-common cmake xz-utils pkg-config \ dh-autoreconf unifont \ - libssl-dev libgmp-dev zlib1g-dev libpci-dev liblzma-dev \ + libssl1.0-dev libgmp-dev zlib1g-dev libpci-dev liblzma-dev \ libyaml-dev libncurses5-dev uuid-dev libusb-dev libftdi-dev \ libusb-1.0-0-dev libreadline-dev libglib2.0-dev libgmp-dev \ - libelf-dev libxml2-dev libfreetype6-dev && \ + libelf-dev libxml2-dev libfreetype6-dev libisl-dev && \ apt-get clean RUN \ cd /root && \ git clone http://review.coreboot.org/coreboot && \ cd coreboot/util/crossgcc && \ - git checkout 589ef9de8fa && \ - make all_without_gdb CPUS=$(nproc) DEST=/opt/xgcc && \ + git checkout {{DOCKER_COMMIT}} && \ + make all_without_gdb CPUS=$(nproc) DEST=/opt/xgcc BUILDGCC_OPTIONS=-b && \ cd /root && \ rm -rf coreboot @@ -31,4 +44,6 @@ RUN mkdir /home/coreboot/.ccache && \ VOLUME /home/coreboot/.ccache ENV PATH $PATH:/opt/xgcc/bin +ENV SDK_VERSION={{SDK_VERSION}} +ENV SDK_COMMIT={{DOCKER_COMMIT}} USER coreboot -- cgit v1.2.3