-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathDockerfile
More file actions
58 lines (48 loc) · 2.09 KB
/
Dockerfile
File metadata and controls
58 lines (48 loc) · 2.09 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
# Use official Ubuntu base image
FROM --platform=linux/amd64 ubuntu:24.04
LABEL maintainer="tsnative docker maintainer"
LABEL description="Image for building and testing the tsnative C++ library"
# Setting up the environment
RUN apt-get update && apt-get upgrade -y && \
apt-get install -y \
git \
curl \
cmake \
build-essential \
ccache \
pkg-config \
binutils-dev \
zlib1g-dev \
gcc-9 \
g++-9
RUN apt install -y software-properties-common && \
add-apt-repository ppa:deadsnakes/ppa && \
apt update && \
apt-get install -y \
python3.11
RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11
RUN python3.11 -m pip install --upgrade pip setuptools wheel
RUN python3.11 -m pip install conan==1.52 --ignore-installed
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && \
apt-get install -y nodejs
# Copy the project
COPY . /tsnative
WORKDIR /tsnative
# Set up the settings and profiles for conan
RUN conan config install settings.yml
RUN conan config install -tf profiles profiles/linux_x86_64_gcc9
RUN conan config install -tf profiles profiles/linux_x86_64_gcc9_debug
# Build 3rdparty
RUN conan create 3rdparty/zlib 1.2.12@ -pr:b linux_x86_64_gcc9 -pr:h linux_x86_64_gcc9
RUN conan create 3rdparty/llvm 11.1.0@ -pr:b linux_x86_64_gcc9 -pr:h linux_x86_64_gcc9
RUN conan create 3rdparty/abseil 20211102.0@ -pr:b linux_x86_64_gcc9 -pr:h linux_x86_64_gcc9
RUN conan create 3rdparty/gtest 1.11.0@ -pr:b linux_x86_64_gcc9 -pr:h linux_x86_64_gcc9
RUN conan create 3rdparty/libuv 1.43.0@ -pr:b linux_x86_64_gcc9 -pr:h linux_x86_64_gcc9
RUN conan create 3rdparty/graphvizlib 1.0.0@ -pr:b linux_x86_64_gcc9 -pr:h linux_x86_64_gcc9
RUN conan create 3rdparty/llvm-node 3.0.9@ -pr:b linux_x86_64_gcc9 -pr:h linux_x86_64_gcc9
# Build targets
RUN conan create declarator/ 0.3@ -pr:b linux_x86_64_gcc9 -pr:h linux_x86_64_gcc9
RUN conan create std/ 0.3@ -pr:b linux_x86_64_gcc9 -pr:h linux_x86_64_gcc9 -o build_tests=True -o enable_logs=all
RUN conan create compiler/ 0.3@ -pr:b linux_x86_64_gcc9 -pr:h linux_x86_64_gcc9
# Specify the default command
CMD [ "bash" ]