2021-05-05 21:51:42 +02:00
# docker-fedora-cpp
2022-04-21 16:40:33 +02:00
[![pre-commit ](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white )](https://github.com/pre-commit/pre-commit)
2021-05-05 21:51:42 +02:00
[![Build Status ](https://drone.dotya.ml/api/badges/wanderer/docker-fedora-cpp/status.svg?ref=refs/heads/dev )](https://drone.dotya.ml/wanderer/docker-fedora-cpp)
[![Docker Image Version (latest by date) ](https://img.shields.io/docker/v/immawanderer/fedora-cpp )](https://hub.docker.com/r/immawanderer/fedora-cpp/tags/?page=1& ordering=last_updated)
[![Docker Image Version (tag latest semver) ](https://img.shields.io/docker/v/immawanderer/archlinux/linux-amd64 )](https://hub.docker.com/r/immawanderer/fedora-cpp/tags/?page=1& ordering=last_updated& name=linux-amd64)
[![Docker Image Size (tag) ](https://img.shields.io/docker/image-size/immawanderer/archlinux/linux-amd64 )](https://hub.docker.com/r/immawanderer/fedora-cpp/tags/?page=1& ordering=last_updated& name=linux-amd64)
[![Docker pulls ](https://img.shields.io/docker/pulls/immawanderer/archlinux )](https://hub.docker.com/r/immawanderer/fedora-cpp/)
This repository provides a Dockerfile to create a container image mainly used for CI testing of C/C++ programs on Fedora.
The image is rebuilt nightly to ensure it always has the latest packages.
development happens on [this Gitea instance ](https://git.dotya.ml/wanderer/docker-fedora-cpp )
## What you get
2022-05-16 16:24:52 +02:00
* updated `registry.fedoraproject.org/fedora-minimal:36` image
2021-05-05 21:51:42 +02:00
* the result of
```sh
2022-01-10 01:48:56 +01:00
microdnf install --nodocs dnf dnf-plugins-core -y & & \
dnf copr enable eddsalkield/iwyu -y & & \
microdnf install --nodocs --setopt install_weak_deps=0 -y \
2021-05-07 02:01:37 +02:00
git \
2021-10-21 01:42:13 +02:00
ninja-build \
2021-05-07 02:01:37 +02:00
make \
{c,auto}make \
gcc \
gcc-c++ \
libgcc \
libstdc++-{devel,static} \
glibc-devel \
2022-01-10 01:48:56 +01:00
iwyu \
cryptopp-devel \
libasan-static \
liblsan-static \
libubsan-static \
libtsan-static \
2021-05-07 02:01:37 +02:00
binutils \
2022-01-10 01:48:56 +01:00
lld \
2021-05-07 02:01:37 +02:00
flex \
bison \
openmpi-devel \
which \
file \
grpc-{cli,cpp,devel,plugins} \
protobuf-c-{devel,compiler} \
protobuf-compiler \
cppunit \
log4cpp-devel \
json-c-devel \
capnproto-{devel,libs} \
libpcap-devel \
hiredis-devel \
mongo-c-driver-{devel,libs} \
boost-{devel,atomic,chrono,date-time,system,program-options,regex,thread} \
libtool \
autoconf \
pkgconf \
kernel-devel \
ncurses-{c++-libs,devel,libs,static} \
2022-01-10 01:48:56 +01:00
numactl-{devel,libs} \
& & dnf copr disable eddsalkield/iwyu \
& & rm -vf /etc/dnf/protected.d/dnf.conf \
& & microdnf remove dnf-plugins-core -y \
& & rpm --nodeps -e dnf \
& & microdnf clean all -y
2021-05-05 21:51:42 +02:00
```
2021-05-07 02:01:37 +02:00
* compiled [`github.com/ntop/nDPI.git` ](https://github.com/ntop/nDPI )
2021-05-05 21:51:42 +02:00
## Purpose
2021-05-07 02:01:37 +02:00
* testing c/cpp programs in CI without the need to install all of the deps (such as protobuf, capnproto, pcap, boost, etc...) all the time.
found out that if there's enough deps it can actually take more time to pre-configure the environment than downloading a single image once reusing it for all subsequent CI builds.