Skip to content
This repository was archived by the owner on Mar 22, 2023. It is now read-only.

Commit 2a0b54f

Browse files
Merge pull request #1073 from lukaszstolarczuk/update-dockers
Update dockers
2 parents 49067ef + 24359cf commit 2a0b54f

17 files changed

Lines changed: 174 additions & 39 deletions

.github/workflows/other_OSes.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,13 @@ jobs:
3232
"OS=debian OS_VER=unstable",
3333
"OS=debian OS_VER=latest",
3434
"OS=fedora OS_VER=33",
35-
"TYPE=package OS=fedora OS_VER=33 PUSH_IMAGE=0",
35+
"OS=fedora OS_VER=34",
36+
"TYPE=package OS=fedora OS_VER=34 PUSH_IMAGE=0",
3637
"OS=fedora OS_VER=rawhide TESTS_PMREORDER=0",
3738
"OS=opensuse-leap OS_VER=latest",
3839
"OS=opensuse-tumbleweed OS_VER=latest",
3940
"OS=ubuntu OS_VER=18.04",
40-
"OS=ubuntu OS_VER=20.10",
41+
"OS=ubuntu OS_VER=21.04",
4142
"OS=ubuntu OS_VER=devel PUSH_IMAGE=0",
4243
"TYPE=package OS=ubuntu OS_VER=devel"]
4344
steps:

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,12 @@ You will need the following packages for compilation:
7777
- for Windows compilation:
7878
- [**vcpkg**](https://github.com/microsoft/vcpkg#quick-start-windows)
7979

80+
Required packages (or their names) for some OSes may differ. Some examples or scripts in this repository may require additional dependencies, but should not interrupt the build.
81+
82+
See our **[Dockerfiles](utils/docker/images)** (used e.g. on our CI
83+
systems) to get an idea what packages are required to build
84+
the entire libpmemobj-cpp, with all tests and examples.
85+
8086
><sup>1</sup> C++11 is supported in GCC since version 4.8.1, but it does not support expanding variadic template variables in lambda expressions, which is required to build persistent containers and is possible with GCC >= 4.9.0. If you want to build libpmemobj-cpp without testing containers, use flag TEST_XXX=OFF (separate flag for each container).
8187
8288
><sup>2</sup> **radix_tree** is supported on Windows with MSBuild >=15 (Visual Studio at least 2017 is needed). Testing radix_tree can be disabled via CMake option (use -DTEST_RADIX_TREE=OFF).

utils/docker/images/Dockerfile.archlinux-base-latest

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#
88

99
# Pull base image
10-
FROM registry.hub.docker.com/archlinux/base:latest
10+
FROM registry.hub.docker.com/library/archlinux:base
1111
MAINTAINER igor.chorazewicz@intel.com
1212

1313
# Set required environment variables
@@ -31,7 +31,7 @@ ARG BASE_DEPS="\
3131
ARG LIBPMEMOBJ_CPP_DEPS="\
3232
intel-tbb"
3333

34-
# ndctl's dependencies (optional; ndctl-devel & daxctl-devel may be used instead)
34+
# ndctl's dependencies (optional; ndctl package may be used instead)
3535
ARG NDCTL_DEPS="\
3636
automake \
3737
asciidoc \
@@ -47,7 +47,7 @@ ARG PMDK_DEPS="\
4747
python3 \
4848
which"
4949

50-
# pmem's Valgrind (optional; valgrind package may be used instead)
50+
# pmem's Valgrind dependencies (optional; valgrind package may be used instead)
5151
ARG VALGRIND_DEPS="\
5252
autoconf \
5353
automake"
@@ -75,7 +75,7 @@ ARG MISC_DEPS="\
7575
sudo \
7676
whois"
7777

78-
# Update the Apt cache and install basic tools
78+
# Update the pacman cache and install basic tools
7979
RUN pacman -Syu --noconfirm \
8080
&& pacman -S --noconfirm \
8181
${BASE_DEPS} \

utils/docker/images/Dockerfile.centos-8

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ ARG PMDK_DEPS="\
4848
rpmdevtools \
4949
which"
5050

51-
# pmem's Valgrind (optional; valgrind-devel may be used instead)
51+
# pmem's Valgrind dependencies (optional; valgrind-devel package may be used instead)
5252
ARG VALGRIND_DEPS="\
5353
autoconf \
5454
automake"
@@ -62,6 +62,7 @@ ARG DOC_DEPS="\
6262
doxygen"
6363

6464
# Tests (optional)
65+
# NOTE: glibc is installed as a separate command; see below
6566
ARG TESTS_DEPS="\
6667
gdb \
6768
libunwind-devel"
@@ -89,6 +90,7 @@ RUN dnf update -y \
8990
${DOC_DEPS} \
9091
${TESTS_DEPS} \
9192
${MISC_DEPS} \
93+
&& dnf debuginfo-install -y glibc \
9294
&& dnf clean all
9395

9496
# Install valgrind

utils/docker/images/Dockerfile.debian-latest

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ ARG SKIP_PMDK_BUILD
2323
# Base development packages
2424
ARG BASE_DEPS="\
2525
cmake \
26-
gcc \
26+
build-essential \
2727
git"
2828

2929
# Dependencies for compiling libpmemobj-cpp project
3030
ARG LIBPMEMOBJ_CPP_DEPS="\
3131
libatomic1 \
3232
libtbb-dev"
3333

34-
# PMDK's dependencies (optional; libpmemobj-devel package may be used instead)
34+
# PMDK's dependencies (optional; libpmemobj-dev package may be used instead)
3535
ARG PMDK_DEPS="\
3636
autoconf \
3737
automake \
@@ -43,7 +43,7 @@ ARG PMDK_DEPS="\
4343
pandoc \
4444
python3"
4545

46-
# pmem's Valgrind (optional; valgrind may be used instead)
46+
# pmem's Valgrind dependencies (optional; valgrind package may be used instead)
4747
ARG VALGRIND_DEPS="\
4848
autoconf \
4949
automake"
@@ -61,6 +61,7 @@ ARG DOC_DEPS="\
6161
# Tests (optional)
6262
ARG TESTS_DEPS="\
6363
gdb \
64+
libc6-dbg \
6465
libunwind-dev"
6566

6667
# Misc for our builds/CI (optional)
@@ -73,9 +74,9 @@ ARG MISC_DEPS="\
7374

7475
ENV DEBIAN_FRONTEND noninteractive
7576

76-
# Update the Apt cache and install basic tools
77+
# Update the apt cache and install basic tools
7778
RUN apt-get update \
78-
&& apt-get install -y software-properties-common \
79+
&& apt-get install -y --no-install-recommends \
7980
${BASE_DEPS} \
8081
${LIBPMEMOBJ_CPP_DEPS} \
8182
${PMDK_DEPS} \

utils/docker/images/Dockerfile.debian-testing

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ ARG SKIP_PMDK_BUILD
2323
# Base development packages
2424
ARG BASE_DEPS="\
2525
cmake \
26-
gcc \
26+
build-essential \
2727
git"
2828

2929
# Dependencies for compiling libpmemobj-cpp project
3030
ARG LIBPMEMOBJ_CPP_DEPS="\
3131
libatomic1 \
3232
libtbb-dev"
3333

34-
# PMDK's dependencies (optional; libpmemobj package may be used instead)
34+
# PMDK's dependencies (optional; libpmemobj-dev package may be used instead)
3535
ARG PMDK_DEPS="\
3636
autoconf \
3737
automake \
@@ -43,7 +43,7 @@ ARG PMDK_DEPS="\
4343
pandoc \
4444
python3"
4545

46-
# pmem's Valgrind (optional; valgrind-devel may be used instead)
46+
# pmem's Valgrind dependencies (optional; valgrind package may be used instead)
4747
ARG VALGRIND_DEPS="\
4848
autoconf \
4949
automake"
@@ -61,6 +61,7 @@ ARG DOC_DEPS="\
6161
# Tests (optional)
6262
ARG TESTS_DEPS="\
6363
gdb \
64+
libc6-dbg \
6465
libunwind-dev"
6566

6667
# Misc for our builds/CI (optional)
@@ -73,9 +74,9 @@ ARG MISC_DEPS="\
7374

7475
ENV DEBIAN_FRONTEND noninteractive
7576

76-
# Update the Apt cache and install basic tools
77+
# Update the apt cache and install basic tools
7778
RUN apt-get update \
78-
&& apt-get install -y software-properties-common \
79+
&& apt-get install -y --no-install-recommends \
7980
${BASE_DEPS} \
8081
${LIBPMEMOBJ_CPP_DEPS} \
8182
${PMDK_DEPS} \

utils/docker/images/Dockerfile.debian-unstable

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ ARG SKIP_PMDK_BUILD
2323
# Base development packages
2424
ARG BASE_DEPS="\
2525
cmake \
26-
gcc \
26+
build-essential \
2727
git"
2828

2929
# Dependencies for compiling libpmemobj-cpp project
3030
ARG LIBPMEMOBJ_CPP_DEPS="\
3131
libatomic1 \
3232
libtbb-dev"
3333

34-
# PMDK's dependencies (optional; libpmemobj package may be used instead)
34+
# PMDK's dependencies (optional; libpmemobj-dev package may be used instead)
3535
ARG PMDK_DEPS="\
3636
autoconf \
3737
automake \
@@ -43,7 +43,7 @@ ARG PMDK_DEPS="\
4343
pandoc \
4444
python3"
4545

46-
# pmem's Valgrind (optional; valgrind-devel may be used instead)
46+
# pmem's Valgrind dependencies (optional; valgrind package may be used instead)
4747
ARG VALGRIND_DEPS="\
4848
autoconf \
4949
automake"
@@ -61,6 +61,7 @@ ARG DOC_DEPS="\
6161
# Tests (optional)
6262
ARG TESTS_DEPS="\
6363
gdb \
64+
libc6-dbg \
6465
libunwind-dev"
6566

6667
# Misc for our builds/CI (optional)
@@ -73,9 +74,9 @@ ARG MISC_DEPS="\
7374

7475
ENV DEBIAN_FRONTEND noninteractive
7576

76-
# Update the Apt cache and install basic tools
77+
# Update the apt cache and install basic tools
7778
RUN apt-get update \
78-
&& apt-get install -y software-properties-common \
79+
&& apt-get install -y --no-install-recommends \
7980
${BASE_DEPS} \
8081
${LIBPMEMOBJ_CPP_DEPS} \
8182
${PMDK_DEPS} \
@@ -84,7 +85,7 @@ RUN apt-get update \
8485
${DOC_DEPS} \
8586
${TESTS_DEPS} \
8687
${MISC_DEPS} \
87-
&& rm -rf /var/lib/apt/lists/*
88+
&& rm -rf /var/lib/apt/lists/*
8889

8990
# Install valgrind
9091
COPY install-valgrind.sh install-valgrind.sh

utils/docker/images/Dockerfile.fedora-32

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ ARG PMDK_DEPS="\
4848
rpmdevtools \
4949
which"
5050

51-
# pmem's Valgrind (optional; valgrind-devel may be used instead)
51+
# pmem's Valgrind dependencies (optional; valgrind-devel package may be used instead)
5252
ARG VALGRIND_DEPS="\
5353
autoconf \
5454
automake"
@@ -63,6 +63,7 @@ ARG DOC_DEPS="\
6363
doxygen"
6464

6565
# Tests (optional)
66+
# NOTE: glibc is installed as a separate command; see below
6667
ARG TESTS_DEPS="\
6768
gdb \
6869
libunwind-devel"
@@ -86,6 +87,7 @@ RUN dnf update -y \
8687
${DOC_DEPS} \
8788
${TESTS_DEPS} \
8889
${MISC_DEPS} \
90+
&& dnf debuginfo-install -y glibc \
8991
&& dnf clean all
9092

9193
# Install valgrind

utils/docker/images/Dockerfile.fedora-33

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ ARG PMDK_DEPS="\
4848
rpmdevtools \
4949
which"
5050

51-
# pmem's Valgrind (optional; valgrind-devel may be used instead)
51+
# pmem's Valgrind dependencies (optional; valgrind-devel package may be used instead)
5252
ARG VALGRIND_DEPS="\
5353
autoconf \
5454
automake"
@@ -63,6 +63,7 @@ ARG DOC_DEPS="\
6363
doxygen"
6464

6565
# Tests (optional)
66+
# NOTE: glibc is installed as a separate command; see below
6667
ARG TESTS_DEPS="\
6768
gdb \
6869
libunwind-devel"
@@ -85,6 +86,7 @@ RUN dnf update -y \
8586
${DOC_DEPS} \
8687
${TESTS_DEPS} \
8788
${MISC_DEPS} \
89+
&& dnf debuginfo-install -y glibc \
8890
&& dnf clean all
8991

9092
# Install valgrind
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# SPDX-License-Identifier: BSD-3-Clause
2+
# Copyright 2016-2021, Intel Corporation
3+
4+
#
5+
# Dockerfile - a 'recipe' for Docker to build an image of fedora-based
6+
# environment prepared for running libpmemobj-cpp tests.
7+
#
8+
9+
# Pull base image
10+
FROM registry.fedoraproject.org/fedora:34
11+
MAINTAINER igor.chorazewicz@intel.com
12+
13+
# Set required environment variables
14+
ENV OS fedora
15+
ENV OS_VER 34
16+
ENV PACKAGE_MANAGER rpm
17+
ENV NOTTY 1
18+
19+
# Additional parameters to build docker without building components
20+
ARG SKIP_VALGRIND_BUILD
21+
ARG SKIP_PMDK_BUILD
22+
23+
# Base development packages
24+
ARG BASE_DEPS="\
25+
cmake \
26+
gcc \
27+
gcc-c++ \
28+
git \
29+
make"
30+
31+
# Dependencies for compiling libpmemobj-cpp project
32+
ARG LIBPMEMOBJ_CPP_DEPS="\
33+
libatomic \
34+
tbb-devel"
35+
36+
# PMDK's dependencies (optional; libpmemobj-devel package may be used instead)
37+
ARG PMDK_DEPS="\
38+
autoconf \
39+
automake \
40+
daxctl-devel \
41+
gdb \
42+
man \
43+
ndctl-devel \
44+
pandoc \
45+
python3 \
46+
rpm-build \
47+
rpm-build-libs \
48+
rpmdevtools \
49+
which"
50+
51+
# pmem's Valgrind (optional; valgrind-devel may be used instead)
52+
ARG VALGRIND_DEPS="\
53+
autoconf \
54+
automake"
55+
56+
# Examples (optional)
57+
ARG EXAMPLES_DEPS="\
58+
ncurses-devel \
59+
SFML-devel"
60+
61+
# Documentation (optional)
62+
ARG DOC_DEPS="\
63+
doxygen"
64+
65+
# Tests (optional)
66+
# NOTE: glibc is installed as a separate command; see below
67+
ARG TESTS_DEPS="\
68+
gdb \
69+
libunwind-devel"
70+
71+
# Misc for our builds/CI (optional)
72+
ARG MISC_DEPS="\
73+
clang \
74+
perl-Text-Diff \
75+
pkgconf \
76+
sudo"
77+
78+
# Update packages and install basic tools
79+
RUN dnf update -y \
80+
&& dnf install -y \
81+
${BASE_DEPS} \
82+
${LIBPMEMOBJ_CPP_DEPS} \
83+
${PMDK_DEPS} \
84+
${VALGRIND_DEPS} \
85+
${EXAMPLES_DEPS} \
86+
${DOC_DEPS} \
87+
${TESTS_DEPS} \
88+
${MISC_DEPS} \
89+
&& dnf debuginfo-install -y glibc \
90+
&& dnf clean all
91+
92+
# Install valgrind
93+
COPY install-valgrind.sh install-valgrind.sh
94+
RUN ./install-valgrind.sh
95+
96+
# Install pmdk
97+
COPY install-pmdk.sh install-pmdk.sh
98+
RUN ./install-pmdk.sh rpm
99+
100+
# Add user
101+
ENV USER user
102+
ENV USERPASS pass
103+
RUN useradd -m $USER \
104+
&& echo "$USER:$USERPASS" | chpasswd \
105+
&& gpasswd wheel -a $USER
106+
USER $USER

0 commit comments

Comments
 (0)