-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile.ci
More file actions
84 lines (76 loc) · 2.21 KB
/
Copy pathDockerfile.ci
File metadata and controls
84 lines (76 loc) · 2.21 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# CI Build Environment for damp
# Based on Ubuntu 22.04 LTS (supported until April 2027)
#
# This image provides all dependencies needed for building and testing.
# Intel IPP must be pre-installed in the base or provided via IPPROOT.
#
# Build: docker build -f Dockerfile.ci -t damp-ci:jammy .
# Usage: See .github/workflows/ci.yml
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8
ENV LANGUAGE=C.UTF-8
# Core build tools
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
gcc \
g++ \
cmake \
ninja-build \
ccache \
git \
curl \
wget \
ca-certificates \
gnupg \
pkg-config \
software-properties-common \
# Audio/media
ffmpeg \
libsndfile1-dev \
# Parallel computing
libtbb-dev \
# Boost
libboost-system-dev \
libboost-filesystem-dev \
libboost-serialization-dev \
libboost-math-dev \
libboost-iostreams-dev \
# Image processing
libpng-dev \
zlib1g-dev \
# Testing tools
valgrind \
# Ruby (for integration tests)
ruby \
ruby-dev \
ruby-bundler \
# Python (for scripts)
python3 \
python3-pip \
python3-venv \
# Misc
libxml2-dev \
time \
&& rm -rf /var/lib/apt/lists/*
# Install Intel IPP (required for DSP operations)
# IPP is available via Intel oneAPI apt repository
RUN wget -qO - https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | \
gpg --dearmor -o /usr/share/keyrings/oneapi-archive-keyring.gpg && \
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | \
tee /etc/apt/sources.list.d/oneAPI.list && \
apt-get update && \
apt-get install -y --no-install-recommends \
intel-oneapi-ipp-devel \
&& rm -rf /var/lib/apt/lists/*
# Set IPP environment
ENV IPPROOT=/opt/intel/oneapi/ipp/latest
ENV LD_LIBRARY_PATH=${IPPROOT}/lib/intel64:${LD_LIBRARY_PATH}
ENV CPATH=${IPPROOT}/include:${CPATH}
ENV LIBRARY_PATH=${IPPROOT}/lib/intel64:${LIBRARY_PATH}
# Install bundler
RUN gem install bundler -v '~> 2.0' --no-document
# Install Python tools
RUN pip3 install --no-cache-dir pipenv autopep8
WORKDIR /workspace