aboutsummaryrefslogtreecommitdiffstats
FROM index.docker.io/alpine:3.22
LABEL MAINTAINER="vosje@vosjedev.net"

# Install needed packages
RUN set -xe \
  && apk update \
  && apk upgrade \
  && apk add --no-cache --purge -uU \
    # Install gitolite
    gitolite git openssh \
    # install git-daemon
    git-daemon \
    # add nginx and cgit stuff
    nginx fcgiwrap spawn-fcgi \
    # python 3 pkg for highlight, about page
    py3-markdown py3-pygments \
    # tarballs support
    lzip xz zstd gzip bzip2 \
  # Create nginx folder
  && mkdir -p /run/nginx \
  # Clean up
  && rm -rf /var/cache/apk/* \
  && rm -rf /tmp/*

# git compile deps
RUN apk add build-base openssl-dev zlib-dev lua5.3-dev asciidoc musl-libintl

# actually install cgit (vosjedev.net fork)
RUN set -xe \
	&& cd / && git clone https://git.vosjedev.net/cgit.git cgit \
	&& cd /cgit \
	&& git checkout vosjedev.net \
	&& git submodule init && git submodule update \

	&& make \
		NO_REGEX=NeedsStartEnd \
		CGIT_SCRIPT_PATH=/usr/share/webapps/cgit \
		NO_ICONV=YesPlease \
		NO_TCLTK=YesPlease \
		NO_SVN_TESTS=YesPlease \
		LUA_PKGCONFIG=lua5.3 \
		prefix=/usr \
			install \
	&& cd / && rm  -rf /cgit /tmp

# Volume to store all ssh host key
VOLUME [ "/etc/ssh" ]

# Volume to store Gitolite data, used for Gitolite setup
VOLUME [ "/var/lib/git" ]

EXPOSE 22 80 9418
WORKDIR /var/lib/git

COPY cgit.css /usr/share/webapps/cgit/cgit.css
COPY md2html /usr/lib/cgit/filters/html-converters/md2html
COPY syntax-highlighting.py /usr/lib/cgit/filters/syntax-highlighting.py
COPY auto-default-branch.sh /usr/lib/gitolite/triggers/auto-default-branch
COPY entrypoint.sh /

RUN chmod u+x /usr/lib/cgit/filters/html-converters/md2html
RUN chmod u+x /usr/lib/cgit/filters/syntax-highlighting.py
RUN chmod a+x /usr/lib/gitolite/triggers/auto-default-branch
RUN chmod u+x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]