Skip to content
This repository was archived by the owner on Nov 4, 2024. It is now read-only.

Commit f3e9529

Browse files
Merge pull request #6 from KFilipek/introduce_base_docker_images
Initial dockerfiles
2 parents 1e59afe + fc9b77b commit f3e9529

6 files changed

Lines changed: 468 additions & 0 deletions

File tree

Docker/fedora33.Dockerfile

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

Docker/fedora34.Dockerfile

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

Docker/install-valgrind.sh

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/usr/bin/env bash
2+
# SPDX-License-Identifier: BSD-3-Clause
3+
# Copyright 2016-2021, Intel Corporation
4+
5+
#
6+
# install-valgrind.sh - installs valgrind with pmemcheck
7+
#
8+
9+
set -e
10+
11+
if [ "${SKIP_VALGRIND_BUILD}" ]; then
12+
echo "Variable 'SKIP_VALGRIND_BUILD' is set; skipping building valgrind (pmem's fork)"
13+
exit
14+
fi
15+
16+
git clone https://github.com/pmem/valgrind.git
17+
cd valgrind
18+
# pmem-3.17: Merge pull request #85 from lukaszstolarczuk/pmem-3.17; 16.08.2021
19+
git checkout ff6f0f125f8e1b1a2a8615f2b14efeaf135ad01b
20+
21+
./autogen.sh
22+
./configure --prefix=/usr
23+
make -j$(nproc)
24+
sudo make -j$(nproc) install
25+
cd ..
26+
rm -rf valgrind

Docker/ubuntu20.04.Dockerfile

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# SPDX-License-Identifier: BSD-3-Clause
2+
# Copyright 2016-2021, Intel Corporation
3+
4+
#
5+
# Dockerfile - Base image for PMDK related projects.
6+
7+
# Pull base image
8+
FROM registry.hub.docker.com/library/ubuntu:20.04
9+
MAINTAINER TBD
10+
11+
# Set required environment variables
12+
ENV OS ubuntu
13+
ENV OS_VER 20.04
14+
ENV PACKAGE_MANAGER deb
15+
ENV NOTTY 1
16+
17+
# Base development packages
18+
ARG BASE_DEPS="\
19+
build-essential \
20+
ca-certificates \
21+
cmake \
22+
git"
23+
24+
# PMDK's dependencies (optional; libpmemobj-devel package may be used instead)
25+
ARG PMDK_DEPS="\
26+
autoconf \
27+
automake \
28+
debhelper \
29+
devscripts \
30+
libdaxctl-dev \
31+
libndctl-dev \
32+
man \
33+
python3"
34+
35+
# pmem's Valgrind (optional; valgrind-devel may be used instead)
36+
ARG VALGRIND_DEPS="\
37+
autoconf \
38+
automake"
39+
40+
# Documentation (optional)
41+
ARG DOC_DEPS="\
42+
doxygen \
43+
pandoc"
44+
45+
# Tests (optional)
46+
# NOTE: glibc is installed as a separate command; see below
47+
ARG TESTS_DEPS="\
48+
gdb \
49+
libunwind-dev"
50+
51+
# Misc for our builds/CI (optional)
52+
ARG MISC_DEPS="\
53+
clang \
54+
libtext-diff-perl \
55+
pkgconf \
56+
sudo \
57+
whois"
58+
59+
# Coverity
60+
ENV COVERITY_DEPS "\
61+
curl \
62+
ruby \
63+
wget"
64+
65+
ENV DEBIAN_FRONTEND noninteractive
66+
67+
# Update packages and install basic tools
68+
RUN apt-get update \
69+
&& apt-get install -y --no-install-recommends \
70+
${BASE_DEPS} \
71+
${PMDK_DEPS} \
72+
${VALGRIND_DEPS} \
73+
${DOC_DEPS} \
74+
${TESTS_DEPS} \
75+
${MISC_DEPS} \
76+
${COVERITY_DEPS} \
77+
&& rm -rf /var/lib/apt/lists/* \
78+
&& apt-get clean all
79+
80+
# Install valgrind
81+
COPY install-valgrind.sh install-valgrind.sh
82+
RUN ./install-valgrind.sh
83+
84+
# Add user
85+
ENV USER user
86+
ENV USERPASS pass
87+
RUN useradd -m $USER -g sudo -p `mkpasswd $USERPASS`
88+
USER $USER

Docker/ubuntu21.04.Dockerfile

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# SPDX-License-Identifier: BSD-3-Clause
2+
# Copyright 2016-2021, Intel Corporation
3+
4+
#
5+
# Dockerfile - Base image for PMDK related projects.
6+
7+
# Pull base image
8+
FROM registry.hub.docker.com/library/ubuntu:21.04
9+
MAINTAINER TBD
10+
11+
# Set required environment variables
12+
ENV OS ubuntu
13+
ENV OS_VER 21.04
14+
ENV PACKAGE_MANAGER deb
15+
ENV NOTTY 1
16+
17+
# Base development packages
18+
ARG BASE_DEPS="\
19+
build-essential \
20+
ca-certificates \
21+
cmake \
22+
git"
23+
24+
# PMDK's dependencies (optional; libpmemobj-devel package may be used instead)
25+
ARG PMDK_DEPS="\
26+
autoconf \
27+
automake \
28+
debhelper \
29+
devscripts \
30+
libdaxctl-dev \
31+
libndctl-dev \
32+
man \
33+
python3"
34+
35+
# pmem's Valgrind (optional; valgrind-devel may be used instead)
36+
ARG VALGRIND_DEPS="\
37+
autoconf \
38+
automake"
39+
40+
# Documentation (optional)
41+
ARG DOC_DEPS="\
42+
doxygen \
43+
pandoc "
44+
45+
# Tests (optional)
46+
# NOTE: glibc is installed as a separate command; see below
47+
ARG TESTS_DEPS="\
48+
gdb \
49+
libunwind-dev"
50+
51+
# Misc for our builds/CI (optional)
52+
ARG MISC_DEPS="\
53+
clang \
54+
libtext-diff-perl \
55+
pkgconf \
56+
sudo \
57+
whois"
58+
59+
# Coverity
60+
ENV COVERITY_DEPS "\
61+
curl \
62+
ruby \
63+
wget"
64+
65+
ENV DEBIAN_FRONTEND noninteractive
66+
67+
# Update packages and install basic tools
68+
RUN apt-get update \
69+
&& apt-get install -y --no-install-recommends \
70+
${BASE_DEPS} \
71+
${PMDK_DEPS} \
72+
${VALGRIND_DEPS} \
73+
${DOC_DEPS} \
74+
${TESTS_DEPS} \
75+
${MISC_DEPS} \
76+
${COVERITY_DEPS} \
77+
&& rm -rf /var/lib/apt/lists/* \
78+
&& apt-get clean all
79+
80+
# Install valgrind
81+
COPY install-valgrind.sh install-valgrind.sh
82+
RUN ./install-valgrind.sh
83+
84+
# Add user
85+
ENV USER user
86+
ENV USERPASS pass
87+
RUN useradd -m $USER -g sudo -p `mkpasswd $USERPASS`
88+
USER $USER

0 commit comments

Comments
 (0)