Skip to content

Commit 2b560dd

Browse files
committed
try and fix Docker build
1 parent 679503f commit 2b560dd

File tree

1 file changed

+2
-63
lines changed

1 file changed

+2
-63
lines changed

Dockerfile

Lines changed: 2 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -8,56 +8,9 @@ ENV DEBIAN_FRONTEND=noninteractive
88
RUN apt-get update && apt-get install -y \
99
git cmake build-essential pkg-config \
1010
libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \
11-
libcurl4-openssl-dev sqlite3 libsqlite3-dev && \
11+
libcurl4-openssl-dev sqlite3 libsqlite3-dev libmbedtls-dev && \
1212
rm -rf /var/lib/apt/lists/*
1313

14-
# Build MbedTLS from source with tests disabled
15-
# and build shared libraries instead of static
16-
WORKDIR /opt
17-
RUN git clone --branch v3.4.0 --depth 1 https://github.com/Mbed-TLS/mbedtls.git && \
18-
cd mbedtls && \
19-
# Enable shared library building
20-
sed -i 's/option(USE_SHARED_MBEDTLS_LIBRARY "Build shared libraries." OFF)/option(USE_SHARED_MBEDTLS_LIBRARY "Build shared libraries." ON)/g' CMakeLists.txt && \
21-
mkdir build && cd build && \
22-
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_TESTING=OFF -DENABLE_PROGRAMS=OFF .. && \
23-
make -j$(nproc) && make install && \
24-
ldconfig
25-
26-
# Create pkg-config files for MbedTLS libraries
27-
RUN mkdir -p /usr/local/lib/pkgconfig && \
28-
echo "prefix=/usr/local\n\
29-
exec_prefix=\${prefix}\n\
30-
libdir=\${exec_prefix}/lib\n\
31-
includedir=\${prefix}/include\n\
32-
\n\
33-
Name: mbedtls\n\
34-
Description: MbedTLS Library\n\
35-
Version: 3.4.0\n\
36-
Requires.private: mbedx509\n\
37-
Libs: -L\${libdir} -lmbedtls\n\
38-
Cflags: -I\${includedir}" > /usr/local/lib/pkgconfig/mbedtls.pc && \
39-
echo "prefix=/usr/local\n\
40-
exec_prefix=\${prefix}\n\
41-
libdir=\${exec_prefix}/lib\n\
42-
includedir=\${prefix}/include\n\
43-
\n\
44-
Name: mbedcrypto\n\
45-
Description: MbedTLS Crypto Library\n\
46-
Version: 3.4.0\n\
47-
Libs: -L\${libdir} -lmbedcrypto\n\
48-
Cflags: -I\${includedir}" > /usr/local/lib/pkgconfig/mbedcrypto.pc && \
49-
echo "prefix=/usr/local\n\
50-
exec_prefix=\${prefix}\n\
51-
libdir=\${exec_prefix}/lib\n\
52-
includedir=\${prefix}/include\n\
53-
\n\
54-
Name: mbedx509\n\
55-
Description: MbedTLS X509 Library\n\
56-
Version: 3.4.0\n\
57-
Requires.private: mbedcrypto\n\
58-
Libs: -L\${libdir} -lmbedx509\n\
59-
Cflags: -I\${includedir}" > /usr/local/lib/pkgconfig/mbedx509.pc
60-
6114
# Fetch external dependencies
6215
RUN mkdir -p /opt/external && \
6316
# ezxml
@@ -71,17 +24,9 @@ RUN mkdir -p /opt/external && \
7124
WORKDIR /opt
7225
COPY . .
7326

74-
# Prepare build environment
75-
# Make a small modification to CMakeLists.txt to ensure proper linking with mbedcrypto
76-
RUN if grep -q "mbedtls mbedx509" CMakeLists.txt; then \
77-
sed -i 's/mbedtls mbedx509/mbedtls mbedx509 mbedcrypto/g' CMakeLists.txt; \
78-
fi
79-
8027
# Build the application
8128
RUN mkdir -p /etc/lightnvr /var/lib/lightnvr /var/log/lightnvr /var/run/lightnvr /var/lib/lightnvr/recordings && \
8229
chmod -R 777 /var/lib/lightnvr /var/log/lightnvr /var/run/lightnvr && \
83-
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH \
84-
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH \
8530
./scripts/build.sh --release --with-sod && \
8631
./scripts/install.sh --prefix=/
8732

@@ -93,19 +38,13 @@ ENV DEBIAN_FRONTEND=noninteractive
9338
# Install only necessary runtime dependencies
9439
RUN apt-get update && apt-get install -y \
9540
libavcodec59 libavformat59 libavutil57 libswscale6 \
96-
libcurl4 sqlite3 && \
41+
libcurl4 libmbedtls14 sqlite3 && \
9742
rm -rf /var/lib/apt/lists/*
9843

9944
# Create necessary directories in runtime
10045
RUN mkdir -p /etc/lightnvr /var/lib/lightnvr /var/log/lightnvr /var/run/lightnvr /var/lib/lightnvr/recordings && \
10146
chmod -R 777 /var/lib/lightnvr /var/log/lightnvr /var/run/lightnvr
10247

103-
# Copy MbedTLS libraries from builder
104-
COPY --from=builder /usr/local/lib/libmbed*.so* /usr/local/lib/
105-
106-
# Update library cache
107-
RUN ldconfig
108-
10948
# Copy compiled binary and config files from builder stage
11049
COPY --from=builder /bin/lightnvr /bin/lightnvr
11150
COPY --from=builder /etc/lightnvr /etc/lightnvr

0 commit comments

Comments
 (0)