kallithea-docker questions/problems

Dominik Ruf dominikruf at gmail.com
Wed Jun 21 19:19:48 UTC 2017


Thomas De Schampheleire <patrickdepinguin at gmail.com> schrieb am Di., 20.
Juni 2017 um 21:57 Uhr:

> Hi Dominik,
>
> I took a look at your kallithea-docker repo because I would like to
> start using Docker to launch my Kallithea instances.
>
> I built an image based on your Dockerfile, but face a few problems
> with the kallithea-entry-point.sh script. For example, the syntax to
> create the config file now does not take the 'Kallithea' argument, so
> one change is:
>
> diff --git a/kallithea-entry-point.sh b/kallithea-entry-point.sh
> --- a/kallithea-entry-point.sh
> +++ b/kallithea-entry-point.sh
> @@ -23,7 +23,7 @@ function create_db {
>
>  if [ "$2" == "serve" ]; then
>      if [ ! -s $KALLITHEA_PATH/conf/kallithea.ini ]; then
> -        gearbox make-config Kallithea $KALLITHEA_PATH/conf/kallithea.ini
> +        gearbox make-config $KALLITHEA_PATH/conf/kallithea.ini
>          sed -i -e 's/host\s=\s127\.0\.0\.1/host = 0.0.0.0/g'
> $KALLITHEA_PATH/conf/kallithea.ini
>      fi
>
> Now, I noticed other issues in this file, that I will try to fix, but
> I wonder what is the most efficient way to work here. Right now, I am
> making changes in kallithea-entry-point.sh, rebuild the image, create
> container, check the logs to see if it's better, repeat. But I feel
> there must be a better way. Do you have some suggestions (I'm
> relatively new to Docker).
>
>
> Related to the Dockerfile itself, I reordered some blocks to attempt
> to improve layer cache usage when a new Kallithea version is desired.
> For example, the apt-get updates and the installation of dockerize are
> expected to be quite invariant, and could be added higher than the
> cloning of Kallithea which may change more often. Below my current
> diff, comments welcome.
>
I'm afraid that will not help. You see, if you use a different REV
argument, docker will rebuild the whole thing anyway. So AFAIK at the
moment there is no way to use layer caching.

>
> diff --git a/Dockerfile b/Dockerfile
> --- a/Dockerfile
> +++ b/Dockerfile
> @@ -2,38 +2,49 @@ FROM python:2.7
>
>  MAINTAINER Dominik Ruf <dominikruf at gmail.com>
>
> +ARG URL=https://kallithea-scm.org/repos/kallithea
> +ARG REV=stable
> +ARG http_proxy=
> +ARG https_proxy=
> +
>  ENV DEBIAN_FRONTEND=noninteractive
>  ENV KALLITHEA_PATH /var/kallithea
> -ARG URL=https://kallithea-scm.org/repos/kallithea
> -ARG REV=stable
> +ENV http_proxy=$http_proxy
> +ENV https_proxy=$https_proxy
>
>  # add kallithea user
>  RUN useradd -d $KALLITHEA_PATH -u 1000 -m -s /bin/bash kallithea
>
> -# get kalilteha sources
> +# install dockerize
> +RUN cd $KALLITHEA_PATH && \
> +    wget
> https://github.com/jwilder/dockerize/releases/download/v0.4.0/dockerize-linux-amd64-v0.4.0.tar.gz
> &&
> <https://github.com/jwilder/dockerize/releases/download/v0.4.0/dockerize-linux-amd64-v0.4.0.tar.gz&&>
> \
> +    tar -C /usr/local/bin -xzvf dockerize-linux-amd64-v0.4.0.tar.gz && \
> +    rm dockerize-linux-amd64-v0.4.0.tar.gz
> +
> +# install dependencies
> +RUN apt-get update && \
> +    apt-get install -y --no-install-recommends \
> +        python-dev \
> +        python-ldap \
> +        pwgen
> +
> +# get kallithea sources
>  RUN mkdir -p $KALLITHEA_PATH/conf && \
>      mkdir $KALLITHEA_PATH/repos && \
>      hg clone $URL -r $REV $KALLITHEA_PATH/src && \
>      rm -r $KALLITHEA_PATH/src/.hg && \
>      chown -R kallithea $KALLITHEA_PATH
>
> -# install dependencies
> -RUN apt-get update && \
> -    apt-get install -y --no-install-recommends \
> -        python-dev \
> -        python-ldap \
> -        pwgen && \
> -
> -    cd $KALLITHEA_PATH/src && \
> +RUN cd $KALLITHEA_PATH/src && \
>      pip install --no-cache-dir --upgrade -e . && \
>      pip install --no-cache-dir --upgrade \
>          psycopg2 \
>          mysql-python \
>          hg-evolve && \
>      python setup.py compile_catalog && \
> -    chown -R kallithea $KALLITHEA_PATH && \
> +    chown -R kallithea $KALLITHEA_PATH
>
> -    apt-get purge --auto-remove -y python-dev && \
> +RUN apt-get purge --auto-remove -y python-dev && \
>      apt-get autoremove && \
>      apt-get autoclean && \
>      rm -rf /var/lib/apt/lists/*
> @@ -57,12 +68,6 @@ RUN if [ -f $KALLITHEA_PATH/src/kallithe
>          rm -rf /var/lib/apt/lists/*; \
>      fi
>
> -# install dockerize
> -RUN cd $KALLITHEA_PATH && \
> -    wget
> https://github.com/jwilder/dockerize/releases/download/v0.4.0/dockerize-linux-amd64-v0.4.0.tar.gz
> &&
> <https://github.com/jwilder/dockerize/releases/download/v0.4.0/dockerize-linux-amd64-v0.4.0.tar.gz&&>
> \
> -    tar -C /usr/local/bin -xzvf dockerize-linux-amd64-v0.4.0.tar.gz && \
> -    rm dockerize-linux-amd64-v0.4.0.tar.gz
> -
>  VOLUME $KALLITHEA_PATH/repos
>  VOLUME $KALLITHEA_PATH/conf
>
>
> Thanks,
> Thomas
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sfconservancy.org/pipermail/kallithea-general/attachments/20170621/eafecca7/attachment-0001.html>


More information about the kallithea-general mailing list