blob: 6b2c18c50947d0186f8110130d29c5b1e65cc3ef [file] [log] [blame]
simon3c67a472022-09-11 01:30:02 -04001FROM ubuntu:22.04
2
3WORKDIR /app
simon3c67a472022-09-11 01:30:02 -04004
5ARG DEBIAN_FRONTEND=noninteractive
6RUN apt-get update && apt-get install -y \
7 autoconf \
8 automake \
9 autopoint \
10 bison \
11 build-essential \
12 cmake \
13 curl \
14 git \
Adrien Bérauda6fbdcb2022-09-18 12:42:38 -040015 libarchive-dev \
16 libasio-dev \
simon3c67a472022-09-11 01:30:02 -040017 libasound2-dev \
18 libdbus-1-dev \
Adrien Bérauda6fbdcb2022-09-18 12:42:38 -040019 libdbus-c++-dev \
simon3c67a472022-09-11 01:30:02 -040020 libexpat1-dev \
Adrien Bérauda6fbdcb2022-09-18 12:42:38 -040021 libfmt-dev \
22 libgmp-dev \
23 nettle-dev \
24 libgnutls28-dev \
25 libjsoncpp-dev \
26 libmsgpack-dev \
27 libnatpmp-dev \
28 libopus-dev \
simon3c67a472022-09-11 01:30:02 -040029 libpulse-dev \
Adrien Bérauda6fbdcb2022-09-18 12:42:38 -040030 libspeex-dev \
31 libspeexdsp-dev \
32 libssl-dev \
simon3c67a472022-09-11 01:30:02 -040033 libtool \
34 libudev-dev \
Adrien Bérauda6fbdcb2022-09-18 12:42:38 -040035 libupnp-dev \
simon3c67a472022-09-11 01:30:02 -040036 libva-dev \
37 libvdpau-dev \
Adrien Bérauda6fbdcb2022-09-18 12:42:38 -040038 libvpx-dev \
39 libx264-dev \
40 libyaml-cpp-dev \
41 libhttp-parser-dev \
42 libwebrtc-audio-processing-dev \
43 libsecp256k1-dev \
simon3c67a472022-09-11 01:30:02 -040044 nasm \
45 pkg-config \
46 yasm
47
48# Install Node
49RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && \
50 apt-get install -y nodejs && \
51 npm install -g node-gyp
52
53# Install latest Swig (4.1)
54WORKDIR /swig
55RUN git clone https://github.com/swig/swig.git && \
56 cd swig && \
57 ./autogen.sh && \
58 ./configure && \
59 make -j$(nproc) && \
60 make install
61
Adrien Bérauda6fbdcb2022-09-18 12:42:38 -040062WORKDIR /app
63COPY . .
simon3c67a472022-09-11 01:30:02 -040064WORKDIR /app/daemon
65
66# Build daemon dependencies
67RUN mkdir -p contrib/native && \
68 cd contrib/native && \
69 ../bootstrap && \
70 make -j$(nproc)
71
72# Build the daemon
73RUN ./autogen.sh && \
74 ./configure --with-nodejs && \
75 make -j$(nproc)
76
77WORKDIR /app
78
79RUN apt-get update && apt-get install -y \
80 lldb \
81 liblldb-dev
82
83ENV LD_LIBRARY_PATH=/app/daemon/src/.libs
84ENV SECRET_KEY_BASE=test123
85RUN npm install && \
86 ln -s /app/daemon/bin/nodejs/build/Release/jamid.node jamid.node && \
87 npm run build
88
89CMD ["npm", "start"]