elixir/docker/Dockerfile
Franciszek Stachura 7d09affd5b Dockerfile: Build and use ctags v6.1.0 (upgrade from v5.9)
Changelogs: https://github.com/universal-ctags/ctags/releases

There are some function definitions that are not found by ctags v5.9.
We must upgrade to the latest release but it isn't packaged by Debian.

We only copy the ctags executable. Debian's package files are:
https://packages.debian.org/sid/amd64/universal-ctags/filelist
We drop:
 - The optscript and readtags executables,
 - The changelog and copyright files and,
 - All manpages.
2025-02-14 09:58:00 +01:00

70 lines
1.6 KiB
Docker

FROM debian:bookworm AS build
RUN \
apt-get update && \
apt-get --no-install-recommends -y install \
git build-essential pkg-config autoconf automake \
python3 python3-pip python3-dev python3-docutils \
libdb-dev \
libseccomp-dev libjansson-dev libyaml-dev libxml2-dev
WORKDIR /build-berkeleydb/
# NOTE wheel version MUST be sycnhronized with requirements.txt
RUN pip wheel berkeleydb==18.1.10
WORKDIR /build-ctags/
RUN git clone --branch v6.1.0 --depth 1 https://github.com/universal-ctags/ctags.git
WORKDIR ctags
RUN ./autogen.sh && ./configure && make -j $(nproc)
FROM debian:bookworm
RUN \
apt-get update && \
apt-get --no-install-recommends -y install \
python3 \
python3-pip \
python3-venv \
libdb5.3 \
perl \
git \
apache2 \
libapache2-mod-wsgi-py3 \
libjansson4 \
libyaml-0-2 \
wget
COPY ./requirements.txt /usr/local/elixir/
WORKDIR /usr/local/elixir/
COPY --from=build /build-berkeleydb/berkeleydb-*.whl /tmp/build/
RUN python3 -m venv venv && \
. ./venv/bin/activate && \
pip install /tmp/build/berkeleydb-*.whl && \
pip install -r requirements.txt
COPY --from=build /build-ctags/ctags/ctags /usr/bin/ctags
RUN mkdir -p /srv/elixir-data/
COPY ./docker/000-default.conf /etc/apache2/sites-available/000-default.conf
COPY ./docker/gitconfig /etc/gitconfig
RUN a2enmod rewrite
EXPOSE 80
ARG ELIXIR_VERSION
ENV ELIXIR_VERSION=$ELIXIR_VERSION \
ELIXIR_ROOT=/srv/elixir-data \
PATH="/usr/local/elixir/utils:/usr/local/elixir/venv/bin:$PATH" \
PYTHONUNBUFFERED=1
COPY . /usr/local/elixir/
ENTRYPOINT ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]