Our jenkins instance is also used for flashrom, which can be built with meson, a mode that we want to be able to test, so add that. ninja can be used as a backend to both meson and cmake (which coreboot will use to build cmocka for its unit tests) and may provide some additional coverage. Plus it's tiny but fast. Change-Id: If454164852303144eaa72c4071c03ee89e863318 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/41731 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
		
			
				
	
	
		
			63 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # 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-jenkins-node
 | |
| #
 | |
| # 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.
 | |
| #  SSH_KEY is the contents of the file coreboot-jenkins-node/authorized_keys
 | |
| #          Because we're piping the contents of the dockerfile into the
 | |
| #          docker build command, the 'COPY' keyword isn't valid.
 | |
| 
 | |
| FROM coreboot/coreboot-sdk:{{SDK_VERSION}}
 | |
| MAINTAINER Martin Roth <martin@coreboot.org>
 | |
| USER root
 | |
| 
 | |
| RUN apt-get -y update && \
 | |
| 	apt-get -y install \
 | |
| 	meson ninja-build \
 | |
| 	lua5.3 liblua5.3-dev default-jre-headless openssh-server && \
 | |
| 	apt-get clean
 | |
| 
 | |
| # Because of the way that the variables are being replaced, docker's 'COPY'
 | |
| # command does not work
 | |
| RUN mkdir -p /home/coreboot/.ssh && \
 | |
| 	echo "{{SSH_KEY}}" > /home/coreboot/.ssh/authorized_keys && \
 | |
| 	chown -R coreboot:coreboot /home/coreboot/.ssh && \
 | |
| 	chmod 0700 /home/coreboot/.ssh && \
 | |
| 	chmod 0600 /home/coreboot/.ssh/authorized_keys
 | |
| 
 | |
| RUN mkdir /var/run/sshd && \
 | |
| 	chmod 0755 /var/run/sshd && \
 | |
| 	/usr/bin/ssh-keygen -A
 | |
| 
 | |
| # Create /cb-build as a tmpfs directory to build in
 | |
| RUN mkdir /cb-build && \
 | |
| 	chown coreboot:coreboot /cb-build && \
 | |
| 	echo "tmpfs /cb-build tmpfs rw,mode=1777 0 0" > /etc/fstab && \
 | |
| 	mkdir -p /home/coreboot/slave-root/workspace && \
 | |
| 	chown -R coreboot:coreboot /home/coreboot/slave-root && \
 | |
| 	echo "tmpfs /home/coreboot/slave-root/workspace tmpfs rw,mode=1777 0 0" >> /etc/fstab && \
 | |
| 	chown coreboot:coreboot /home/coreboot/.ccache && \
 | |
| 	echo "tmpfs /home/coreboot/.ccache tmpfs rw,mode=1777 0 0" >> /etc/fstab
 | |
| 
 | |
| # Build encapsulate tool
 | |
| ADD https://raw.githubusercontent.com/coreboot/encapsulate/master/encapsulate.c /tmp/encapsulate.c
 | |
| RUN gcc -o /usr/sbin/encapsulate /tmp/encapsulate.c && \
 | |
| 	chown root /usr/sbin/encapsulate && \
 | |
| 	chmod +s /usr/sbin/encapsulate
 | |
| 
 | |
| VOLUME /data/cache
 | |
| ENTRYPOINT mount /cb-build && \
 | |
| 	mount /home/coreboot/slave-root/workspace && \
 | |
| 	chown -R coreboot:coreboot /home/coreboot/slave-root && \
 | |
| 	mount /home/coreboot/.ccache && \
 | |
| 	chown coreboot:coreboot /home/coreboot/.ccache && \
 | |
| 	/usr/sbin/sshd -p 49151 -D
 | |
| EXPOSE 49151
 | |
| ENV PATH $PATH:/usr/sbin
 |