Commit 26eb28dc authored by louiz’'s avatar louiz’

Split the biboumi dockerfile into two, to be able to disable the cache

parent dcb48c5a
......@@ -190,5 +190,5 @@ packaging:docker:
before_script: []
script:
- docker login -p $DOCKER_PASSWORD -u louiz
- docker build -t louiz/biboumi docker/biboumi
- ./docker/biboumi/build-docker.sh louiz/biboumi
- docker push louiz/biboumi
# 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
# This dockerfile uses the image built using Dockerfile.base, and installs
# biboumi in it
FROM biboumi-base
RUN git clone git://git.louiz.org/biboumi && mkdir ./biboumi/build && cd ./biboumi/build &&\
cmake .. -DCMAKE_INSTALL_PREFIX=/usr\
-DCMAKE_BUILD_TYPE=Release\
......
# 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
......@@ -76,3 +76,23 @@ 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
```
#!/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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment