-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
69 lines (56 loc) · 2.07 KB
/
Dockerfile
File metadata and controls
69 lines (56 loc) · 2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Copyright (c) 2025 Core Devices LLC
# SPDX-License-Identifier: Apache-2.0
FROM ubuntu:24.04
ARG EM_VERSION=4.0.7
ARG ARM_GNU_TOOLCHAIN_VERSION=14.2.rel1
ENV EM_VERSION=$EM_VERSION
ENV ARM_GNU_TOOLCHAIN_VERSION=$ARM_GNU_TOOLCHAIN_VERSION
# Set default shell during Docker image build to bash
SHELL ["/bin/bash", "-c"]
# Set non-interactive frontend for apt-get to skip any user confirmations
ENV DEBIAN_FRONTEND=noninteractive
# Install system-level dependencies
RUN apt-get -y update && \
apt-get install -y --no-install-recommends \
bison \
clang \
flex \
gcc \
gcc-multilib \
gperf \
git \
gettext \
libfreetype6-dev \
libglib2.0-dev \
libgtk-3-dev \
libncurses-dev \
librsvg2-bin \
make \
python3-dev \
python3-pip \
python3-venv \
xz-utils \
wget \
&& rm -rf /var/lib/apt/lists/*
# Install latest Doxygen
# The version of Doxygen in Ubuntu's repos is old, and generates docs with missing functions
RUN wget -O doxygen.tar.gz "https://www.doxygen.nl/files/doxygen-1.14.0.linux.bin.tar.gz" && \
tar xf doxygen.tar.gz && \
mv doxygen-1.14.0/bin/* /usr/bin/ && \
rm -r doxygen-1.14.0 doxygen.tar.gz
# Install ARM GNU Toolchain
RUN wget -O arm-gnu-toolchain.tar.xz "https://developer.arm.com/-/media/Files/downloads/gnu/${ARM_GNU_TOOLCHAIN_VERSION}/binrel/arm-gnu-toolchain-${ARM_GNU_TOOLCHAIN_VERSION}-${HOSTTYPE}-arm-none-eabi.tar.xz" && \
tar xf arm-gnu-toolchain.tar.xz -C /opt && \
rm arm-gnu-toolchain.tar.xz && \
mv /opt/arm-gnu-toolchain-${ARM_GNU_TOOLCHAIN_VERSION}-${HOSTTYPE}-arm-none-eabi /opt/arm-gnu-toolchain
ENV PATH="/opt/arm-gnu-toolchain/bin:$PATH"
# Install EMSDK
RUN git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk --depth 1 && \
cd /opt/emsdk && \
./emsdk install ${EM_VERSION} && \
./emsdk activate ${EM_VERSION} && \
ln -s /opt/emsdk/node/* /opt/emsdk/node/node
ENV PATH="/opt/emsdk:/opt/emsdk/upstream/emscripten:/opt/emsdk/node/node/bin:$PATH"
# Create Python virtual environment
RUN python3 -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"