Skip to content

Commit

Permalink
Redesign Dockerfile and add .dockerignore
Browse files Browse the repository at this point in the history
Refs: #5303
Change-Id: I494c2b64cf7230225e45a1028ee69f50612ffffa
  • Loading branch information
Pesa committed Mar 31, 2024
1 parent 2d08539 commit 18ccbb3
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 24 deletions.
27 changes: 27 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Waf build system
build/
.waf-*-*/
.waf3-*-*/
.lock-waf*

# Compiled python code
**/__pycache__/
**/*.py[cod]

# Qt Creator
*.creator
*.creator.user
.qtc_clangd/

# Visual Studio Code
.vscode/

# macOS
**/.DS_Store
**/.AppleDouble
**/.LSOverride
**/._*

# Other
Dockerfile
VERSION.info
27 changes: 16 additions & 11 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Emacs
# Backup files
*~
*.bak
*.orig
*.rej

# Waf build system
/build/
.waf-*-*/
.waf3-*-*/
.lock-waf*

# Compiled python code
__pycache__/
*.py[cod]

# Emacs
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
Expand All @@ -15,16 +30,6 @@
.LSOverride
._*

# Waf build system
/build/
.waf-*-*/
.waf3-*-*/
.lock-waf*

# Compiled python code
__pycache__/
*.py[cod]

# Other
/VERSION.info
/examples/example-trust-anchor.cert
53 changes: 40 additions & 13 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,25 +1,52 @@
FROM gcc:12-bookworm
# syntax=docker/dockerfile:1

RUN apt-get update \
&& apt-get install -y --no-install-recommends \
FROM ubuntu:23.10 AS build

RUN apt-get install -Uy --no-install-recommends \
dpkg-dev \
g++ \
git \
libboost-chrono-dev \
libboost-date-time-dev \
libboost-dev \
libboost-filesystem-dev \
libboost-iostreams-dev \
libboost-log-dev \
libboost-program-options-dev \
libboost-stacktrace-dev \
libboost-thread-dev \
pkg-config \
libsqlite3-dev \
libssl-dev \
pkgconf \
python3 \
# use 'apt-get distclean' when we upgrade to ubuntu:24.04
&& rm -rf /var/lib/apt/lists/*

COPY . /ndn-cxx
RUN --mount=type=bind,rw,target=/src <<EOF
set -eux
cd /src
./waf configure \
--prefix=/usr \
--libdir=/usr/lib \
--sysconfdir=/etc \
--localstatedir=/var \
--sharedstatedir=/var \
--disable-static \
--enable-shared
./waf build
./waf install

mkdir -p /deps/debian
touch /deps/debian/control
cd /deps
dpkg-shlibdeps --ignore-missing-info /usr/lib/libndn-cxx.so.* /usr/bin/ndnsec -O \
| sed -n 's|^shlibs:Depends=||p' | sed 's| ([^)]*),\?||g' > ndn-cxx
EOF

FROM ubuntu:23.10 AS run

RUN --mount=type=bind,from=build,source=/deps,target=/deps \
apt-get install -Uy --no-install-recommends $(cat /deps/ndn-cxx) \
&& rm -rf /var/lib/apt/lists/*

RUN cd /ndn-cxx \
&& ./waf configure --without-pch --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-static --enable-shared \
&& ./waf \
&& ./waf install \
&& cd \
&& rm -rf /ndn-cxx
RUN --mount=type=bind,from=build,source=/usr,target=/build \
cp -av /build/lib/libndn-cxx.so.* /usr/lib/ \
&& cp -av /build/bin/ndnsec* /usr/bin/

0 comments on commit 18ccbb3

Please sign in to comment.