FROM alpine:3.8 ENV GITLAB_BRANCH 11-3-stable RUN apk add -U \ build-base \ zlib-dev \ yaml-dev \ libressl-dev \ gdbm-dev \ re2-dev \ readline-dev \ ncurses-dev \ libffi-dev \ curl-dev \ openssh-server \ libxml2-dev \ libxslt-dev \ icu-dev \ logrotate \ rsync \ py-docutils \ cmake \ ruby=~2.5 \ yarn \ nodejs \ sudo \ git \ go # create git user and config git RUN addgroup -S git \ && adduser -S -D -h /var/lib/git -s /bin/sh -G git -g git git \ && sudo -u git -H git config --global core.autocrlf input \ && sudo -u git -H git config --global gc.auto 0 \ && sudo -u git -H git config --global repack.writeBitmaps true \ && sudo -u git -H git config --global receive.advertisePushOptions true # clone gitlab repo RUN cd /var/lib/git \ && sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b $GITLAB_BRANCH gitlab # fix permissions RUN cd /var/lib/git/gitlab \ && chown -R git log/ tmp/ \ && chmod -R u+rwX,go-w log/ \ && chmod -R u+rwX tmp/ \ && chmod -R u+rwX tmp/pids/ \ && chmod -R u+rwX tmp/sockets/ \ \ && install -d -o git -g git -m0700 public/uploads \ && chmod -R u+rwX builds/ \ && chmod -R u+rwX shared/artifacts/ \ && chmod -R ug+rwX shared/pages/ # the following files may need to be edited for our config RUN cd /var/lib/git/gitlab \ && install -o git -g git config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb \ && install -o git -g git config/gitlab.yml.example config/gitlab.yml \ && install -o git -g git -m0600 config/secrets.yml.example config/secrets.yml \ && install -o git -g git config/resque.yml.example config/resque.yml \ && install -o git -g git config/unicorn.rb.example config/unicorn.rb \ && install -o git -g git -m640 config/database.yml.postgresql config/database.yml