~singpolyma/biboumi

90b3c07b6c43215076f2f1eacbfb1335aa714366 — louiz’ 7 years ago 58b3345
Revert "Split the biboumi dockerfile into two, to be able to disable the cache"

This reverts commit 26eb28dc2368d14e171201a0c6b76b76b19e1ddc.
5 files changed, 26 insertions(+), 63 deletions(-)

M .gitlab-ci.yml
M docker/biboumi/Dockerfile
D docker/biboumi/Dockerfile.base
M docker/biboumi/README.rst
D docker/biboumi/build-docker.sh
M .gitlab-ci.yml => .gitlab-ci.yml +1 -1
@@ 176,5 176,5 @@ packaging:docker:
  before_script: []
  script:
    - docker login -p $DOCKER_PASSWORD -u louiz
    - ./docker/biboumi/build-docker.sh louiz/biboumi
    - docker build -t louiz/biboumi docker/biboumi
    - docker push louiz/biboumi

M docker/biboumi/Dockerfile => docker/biboumi/Dockerfile +25 -5
@@ 1,8 1,28 @@
# This dockerfile uses the image built using Dockerfile.base, and installs
# biboumi in it

FROM biboumi-base

# This Dockerfile creates a docker image running biboumi

FROM docker.io/fedora:latest

RUN dnf --refresh install -y\
    gcc-c++\
    cmake\
    make\
    udns-devel\
    sqlite-devel\
    libuuid-devel\
    expat-devel\
    libidn-devel\
    systemd-devel\
    git\
    python\
    && dnf clean all

# Install botan
RUN git clone https://github.com/randombit/botan.git && cd botan && ./configure.py --prefix=/usr && make -j8 && make install && ldconfig && rm -rf /botan

# Install litesql
RUN git clone git://git.louiz.org/litesql && mkdir /litesql/build && cd /litesql/build && cmake .. -DCMAKE_INSTALL_PREFIX=/usr && make -j8 &&  cd /litesql/build && make install && ldconfig && rm -rf /litesql

# Install biboumi
RUN git clone git://git.louiz.org/biboumi && mkdir ./biboumi/build && cd ./biboumi/build &&\
   cmake .. -DCMAKE_INSTALL_PREFIX=/usr\
            -DCMAKE_BUILD_TYPE=Release\

D docker/biboumi/Dockerfile.base => docker/biboumi/Dockerfile.base +0 -23
@@ 1,23 0,0 @@
# This dockerfile install all the dependencies needing to compile biboumi

FROM docker.io/fedora:latest

RUN dnf --refresh install -y\
    gcc-c++\
    cmake\
    make\
    udns-devel\
    sqlite-devel\
    libuuid-devel\
    expat-devel\
    libidn-devel\
    systemd-devel\
    git\
    python\
    && dnf clean all

# Install botan
RUN git clone https://github.com/randombit/botan.git && cd botan && ./configure.py --prefix=/usr && make -j8 && make install && ldconfig && rm -rf /botan

# Install litesql
RUN git clone git://git.louiz.org/litesql && mkdir /litesql/build && cd /litesql/build && cmake .. -DCMAKE_INSTALL_PREFIX=/usr && make -j8 &&  cd /litesql/build && make install && ldconfig && rm -rf /litesql

M docker/biboumi/README.rst => docker/biboumi/README.rst +0 -20
@@ 76,23 76,3 @@ The database is stored in the /var/lib/biboumi/ directory. If you don’t bind
a local directory to it, the database will be lost when the container is
stopped. If you want to keep your database between each run, bind it with
the -v option, like this: **-v /srv/biboumi/:/var/lib/biboumi**.

Building
--------

This image is built from 2 Dockerfiles:
- Dockerfile.base: builds and installs all the dependencies needed to build and run biboumi
- Dockerfile: builds and installs biboumi itself

The goal is to be able to force the rebuild of biboumi itself (by using
the --no-cache option) without having to rebuild and install all its
dependencies.

The build does not require any file in the build context, everything is
fetched during the build using git or dnf.

To build a biboumi image named “foo/biboumi”, you can run the script:

```
./build-docker.sh foo/biboumi
```

D docker/biboumi/build-docker.sh => docker/biboumi/build-docker.sh +0 -14
@@ 1,14 0,0 @@
#!/bin/sh

if [[ -z "$1" ]]; then
    echo "Usage: ./build-docker.sh <image_name>"
    echo "Example: ./build-docker.sh docker.io/coucou/biboumi"
    exit 1
fi

directory=$(dirname $0)
image_name=$1

echo $directory
docker build -t biboumi-base $directory -f $directory/Dockerfile.base
docker build -t $image_name  $directory -f $directory/Dockerfile --no-cache