zmk-docker/Dockerfile
innovaker 7f4cdc99ef refactor: move OCI image.source LABEL out of Dockerfile
Defining the LABEL via an ARG at the top of the Dockerfile prevents other GitHub repositories (or local Docker users) from leveraging otherwise identical cache layers.

PR: #18
2021-05-17 19:19:23 +01:00

105 lines
2.7 KiB
Docker

FROM debian:stable-20201117-slim AS common
CMD ["/bin/bash"]
ENV DEBIAN_FRONTEND=noninteractive
ARG ZEPHYR_VERSION
ENV ZEPHYR_VERSION=${ZEPHYR_VERSION}
RUN \
apt-get -y update \
&& apt-get -y install --no-install-recommends \
ccache \
file \
gcc \
gcc-multilib \
git \
gperf \
make \
ninja-build \
python3 \
python3-pip \
python3-setuptools \
python3-wheel \
&& echo deb http://deb.debian.org/debian buster-backports main >> /etc/apt/sources.list \
&& apt-get -y update \
&& apt-get -y -t buster-backports install --no-install-recommends \
cmake \
&& pip3 install \
-r https://raw.githubusercontent.com/zephyrproject-rtos/zephyr/v${ZEPHYR_VERSION}/scripts/requirements-base.txt \
&& apt-get remove -y --purge \
python3-pip \
python3-setuptools \
python3-wheel \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& cmake --version
#------------------------------------------------------------------------------
FROM common AS dev-generic
ENV LC_ALL=C
RUN \
apt-get -y update \
&& apt-get -y -t buster-backports install --no-install-recommends \
curl \
&& curl -sL https://deb.nodesource.com/setup_14.x | bash - \
&& apt-get -y update \
&& apt-get -y install --no-install-recommends \
clang-format \
g++-multilib \
gpg \
gpg-agent \
libsdl2-dev \
locales \
nano \
nodejs \
python3 \
python3-dev \
python3-pip \
python3-setuptools \
python3-tk \
python3-wheel \
ssh \
wget \
xz-utils \
&& pip3 install \
-r https://raw.githubusercontent.com/zephyrproject-rtos/zephyr/v${ZEPHYR_VERSION}/scripts/requirements-build-test.txt \
-r https://raw.githubusercontent.com/zephyrproject-rtos/zephyr/v${ZEPHYR_VERSION}/scripts/requirements-run-test.txt \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& node --version
ENV DEBIAN_FRONTEND=
#------------------------------------------------------------------------------
FROM common AS build
ARG ARCHITECTURE
ARG ZEPHYR_SDK_VERSION
ARG ZEPHYR_SDK_SETUP_FILENAME=zephyr-toolchain-${ARCHITECTURE}-${ZEPHYR_SDK_VERSION}-setup.run
ARG ZEPHYR_SDK_INSTALL_DIR=/opt/zephyr-sdk-${ZEPHYR_SDK_VERSION}
RUN \
apt-get -y update \
&& apt-get -y install --no-install-recommends \
bzip2 \
wget \
xz-utils \
&& wget -q "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${ZEPHYR_SDK_VERSION}/${ZEPHYR_SDK_SETUP_FILENAME}" \
&& sh ${ZEPHYR_SDK_SETUP_FILENAME} --quiet -- -d ${ZEPHYR_SDK_INSTALL_DIR} \
&& rm ${ZEPHYR_SDK_SETUP_FILENAME} \
&& apt-get remove -y --purge \
bzip2 \
wget \
xz-utils \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
#------------------------------------------------------------------------------
FROM dev-generic AS dev
COPY --from=build ${ZEPHYR_SDK_INSTALL_DIR} ${ZEPHYR_SDK_INSTALL_DIR}