docker-fedora-cpp/README.md
surtur 1760f6e6cf
All checks were successful
continuous-integration/drone/push Build is passing
add pre-commit-config.yaml
2022-04-21 16:40:33 +02:00

73 lines
3.0 KiB
Markdown

# docker-fedora-cpp
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
[![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
* updated `registry.fedoraproject.org/fedora-minimal:35` image
* the result of
```sh
microdnf install --nodocs dnf dnf-plugins-core -y && \
dnf copr enable eddsalkield/iwyu -y && \
microdnf install --nodocs --setopt install_weak_deps=0 -y \
git \
ninja-build \
make \
{c,auto}make \
gcc \
gcc-c++ \
libgcc \
libstdc++-{devel,static} \
glibc-devel \
iwyu \
cryptopp-devel \
libasan-static \
liblsan-static \
libubsan-static \
libtsan-static \
binutils \
lld \
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} \
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
```
* compiled [`github.com/ntop/nDPI.git`](https://github.com/ntop/nDPI)
## Purpose
* 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.