2016-12-31 01:00:19 +01:00
|
|
|
# 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.
|
|
|
|
|
2021-01-27 13:20:43 +01:00
|
|
|
FROM coreboot/coreboot-sdk:{{SDK_VERSION}} AS zephyr-sdk
|
|
|
|
USER root
|
|
|
|
RUN wget -O zephyr.run https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.11.3/zephyr-sdk-0.11.3-setup.run
|
|
|
|
RUN chmod +x ./zephyr.run
|
|
|
|
RUN ./zephyr.run -- -d /opt/zephyr-sdk
|
|
|
|
|
2016-12-31 01:00:19 +01:00
|
|
|
FROM coreboot/coreboot-sdk:{{SDK_VERSION}}
|
2016-05-16 19:27:56 +02:00
|
|
|
USER root
|
2016-05-16 19:27:56 +02:00
|
|
|
|
2016-05-16 19:27:56 +02:00
|
|
|
RUN apt-get -y update && \
|
|
|
|
apt-get -y install \
|
2022-02-28 23:20:10 +01:00
|
|
|
default-jre-headless \
|
2022-09-01 11:11:12 +02:00
|
|
|
libcmocka-dev \
|
2022-02-28 23:20:10 +01:00
|
|
|
liblua5.3-dev \
|
|
|
|
linkchecker \
|
|
|
|
lua5.3 \
|
|
|
|
meson \
|
|
|
|
ninja-build \
|
|
|
|
openssh-server \
|
|
|
|
parallel \
|
2022-05-24 00:04:38 +02:00
|
|
|
ruby-full \
|
2022-02-28 23:20:10 +01:00
|
|
|
sdcc \
|
|
|
|
&& apt-get clean
|
2016-05-16 19:27:56 +02:00
|
|
|
|
2016-12-31 01:00:19 +01:00
|
|
|
# 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 && \
|
2016-05-16 19:27:56 +02:00
|
|
|
chmod 0700 /home/coreboot/.ssh && \
|
|
|
|
chmod 0600 /home/coreboot/.ssh/authorized_keys
|
|
|
|
|
|
|
|
RUN mkdir /var/run/sshd && \
|
2016-12-31 01:00:19 +01:00
|
|
|
chmod 0755 /var/run/sshd && \
|
|
|
|
/usr/bin/ssh-keygen -A
|
2016-05-16 19:27:56 +02:00
|
|
|
|
2020-10-26 01:24:34 +01:00
|
|
|
# Create tmpfs directories to build in
|
2018-07-13 05:49:06 +02:00
|
|
|
RUN mkdir /cb-build && \
|
|
|
|
chown coreboot:coreboot /cb-build && \
|
2020-10-26 01:44:35 +01:00
|
|
|
echo "tmpfs /cb-build tmpfs rw,mode=1777,noatime 0 0" > /etc/fstab && \
|
2020-10-26 01:24:34 +01:00
|
|
|
mkdir -p /home/coreboot/node-root/workspace && \
|
|
|
|
chown -R coreboot:coreboot /home/coreboot/node-root && \
|
2020-10-26 01:44:35 +01:00
|
|
|
echo "tmpfs /home/coreboot/node-root/workspace tmpfs rw,mode=1777,strictatime,atime 0 0" >> /etc/fstab && \
|
2018-07-13 05:49:06 +02:00
|
|
|
chown coreboot:coreboot /home/coreboot/.ccache && \
|
|
|
|
echo "tmpfs /home/coreboot/.ccache tmpfs rw,mode=1777 0 0" >> /etc/fstab
|
|
|
|
|
2016-05-16 19:27:56 +02:00
|
|
|
# Build encapsulate tool
|
2020-02-14 09:51:54 +01:00
|
|
|
ADD https://raw.githubusercontent.com/coreboot/encapsulate/master/encapsulate.c /tmp/encapsulate.c
|
2016-05-16 19:27:56 +02:00
|
|
|
RUN gcc -o /usr/sbin/encapsulate /tmp/encapsulate.c && \
|
|
|
|
chown root /usr/sbin/encapsulate && \
|
|
|
|
chmod +s /usr/sbin/encapsulate
|
|
|
|
|
2021-01-27 13:20:43 +01:00
|
|
|
COPY --from=zephyr-sdk /opt/zephyr-sdk /opt/zephyr-sdk
|
|
|
|
|
2021-02-15 16:02:01 +01:00
|
|
|
RUN apt-get update && \
|
2022-02-28 23:20:10 +01:00
|
|
|
apt-get install -y \
|
|
|
|
python3-pip \
|
|
|
|
pykwalify \
|
|
|
|
python3-yaml \
|
|
|
|
python3-pyelftools \
|
|
|
|
python3-jsonschema \
|
|
|
|
python3-colorama \
|
|
|
|
python3-pyrsistent \
|
|
|
|
swig \
|
2022-05-24 00:04:38 +02:00
|
|
|
&& apt-get clean \
|
|
|
|
&& pip3 install --upgrade --no-cache-dir pip \
|
|
|
|
&& pip3 install --no-cache-dir \
|
2022-12-24 05:59:13 +01:00
|
|
|
setuptools==58.2.0 \
|
2022-05-24 00:04:38 +02:00
|
|
|
jinja2==3.0.3 \
|
|
|
|
recommonmark===0.5.0 \
|
|
|
|
sphinx===1.8.3 \
|
|
|
|
sphinxcontrib-ditaa===0.6 \
|
|
|
|
sphinx_autobuild===0.7.1 \
|
|
|
|
sphinx_rtd_theme===0.4.2 \
|
|
|
|
&& gem install mdl
|
2021-02-15 16:02:01 +01:00
|
|
|
|
2022-12-24 05:59:13 +01:00
|
|
|
# Build U-boot tools needed by zephyr
|
2021-02-15 16:02:01 +01:00
|
|
|
RUN mkdir /tmp/b && cd /tmp/b && \
|
|
|
|
git clone https://git.kernel.org/pub/scm/utils/dtc/dtc.git dtc && \
|
|
|
|
git clone https://chromium.googlesource.com/chromiumos/third_party/u-boot -b chromeos-v2020.10-rc1 u-boot && \
|
|
|
|
(cd dtc && make install_pylibfdt PREFIX=/usr/local) && \
|
|
|
|
(cd u-boot/tools/dtoc && python3 setup.py install) && \
|
|
|
|
(cd u-boot/tools/patman && python3 setup.py install) && \
|
|
|
|
(cd u-boot/tools/binman && python3 setup.py install) && \
|
|
|
|
cd / && rm -rf /tmp/b
|
|
|
|
|
2016-05-16 19:27:56 +02:00
|
|
|
VOLUME /data/cache
|
2018-07-13 05:49:06 +02:00
|
|
|
ENTRYPOINT mount /cb-build && \
|
2020-10-26 01:24:34 +01:00
|
|
|
mount /home/coreboot/node-root/workspace && \
|
|
|
|
chown -R coreboot:coreboot /home/coreboot/node-root && \
|
2018-07-13 05:49:06 +02:00
|
|
|
mount /home/coreboot/.ccache && \
|
|
|
|
chown coreboot:coreboot /home/coreboot/.ccache && \
|
|
|
|
/usr/sbin/sshd -p 49151 -D
|
2016-05-16 19:27:56 +02:00
|
|
|
EXPOSE 49151
|
|
|
|
ENV PATH $PATH:/usr/sbin
|