Split the biboumi dockerfile into two, to be able to disable the cache
This commit is contained in:
@@ -1,28 +1,8 @@
|
||||
# This Dockerfile creates a docker image running biboumi
|
||||
# This dockerfile uses the image built using Dockerfile.base, and installs
|
||||
# biboumi in it
|
||||
|
||||
FROM docker.io/fedora:latest
|
||||
FROM biboumi-base
|
||||
|
||||
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\
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# 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
|
||||
```
|
||||
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user