Dockerfile 2.79 KB
Newer Older
1
FROM sameersbn/gitlab-ci-multi-runner:1.1.4-7
Michał 'rysiek' Woźniak's avatar
Michał 'rysiek' Woźniak committed
2 3 4
MAINTAINER Michał "rysiek" Woźniak <rysiek@occrp.org>

#
5
# a Gitlab CI container to be used with Jekyll static site generator
Michał 'rysiek' Woźniak's avatar
Michał 'rysiek' Woźniak committed
6 7 8 9
#

# environment
ENV DEBIAN_FRONTEND=noninteractive 
10

11 12 13 14 15 16 17
# need en_US.UTF-8 locale for SASS to handle UTF-8 characters in CSS
# http://code.dblock.org/2011/06/09/compass-invalid-us-ascii-character-xe2.html
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
RUN locale-gen en_US.UTF-8

18 19
# we need this to be able to handle the node repo setup
RUN DEBIAN_FRONTEND=noninteractive apt-get -q update && \
20 21 22 23 24 25 26
        apt-get -q -y --no-install-recommends install \
            gnupg \
            apt-transport-https \
            ca-certificates \
            lsb-release && \
        apt-get -q clean && \
        apt-get -q -y autoremove && \
27 28 29 30 31 32 33
        rm -rf /var/lib/apt/lists/*

# add the node repo key
COPY node-repo-key.asc /tmp/node-repo-key.asc
RUN apt-key add /tmp/node-repo-key.asc

# add the node repo
Michał 'rysiek' Woźniak's avatar
bugfix  
Michał 'rysiek' Woźniak committed
34
RUN echo "deb https://deb.nodesource.com/node_8.x trusty main\ndeb-src https://deb.nodesource.com/node_8.x trusty main\n" > /etc/apt/sources.list.d/node_8.x.list
35 36 37 38

# adding additional repository keys from build args
ARG ADD_REPOSITORY_KEYS=
RUN if [ "$ADD_REPOSITORY_KEYS" != "" ]; then \
39 40 41
        echo "$ADD_REPOSITORY_KEYS" | sed -e 's/^[[:space:]]*//' | apt-key add - ; \
    fi
    
42
# adding repositories from build args
43 44
ARG ADD_REPOSITORIES=
RUN if [ "$ADD_REPOSITORIES" != "" ]; then \
Michał 'rysiek' Woźniak's avatar
bugfix  
Michał 'rysiek' Woźniak committed
45
        echo "$ADD_REPOSITORIES" | sed -e 's/^[[:space:]]*//' > /etc/apt/sources.list.d/added-from-docker-build-arg.list ; \
46 47
    fi

Michał 'rysiek' Woźniak's avatar
fixed  
Michał 'rysiek' Woźniak committed
48
# Ruby and requirements
Michał 'rysiek' Woźniak's avatar
Michał 'rysiek' Woźniak committed
49 50 51 52 53
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        ca-certificates \
        make \
        gcc \
54
        g++ \
Michał 'rysiek' Woźniak's avatar
fixed  
Michał 'rysiek' Woźniak committed
55 56 57 58
        libc-dev-bin \
        libc6-dev \
        linux-libc-dev \
        libc6 \
59
        software-properties-common \
60 61 62
        rsync \
        imagemagick \
        nodejs && \
63
    rm -rf /var/lib/apt/lists/*
64

65 66
# npm's self-signed CA is no more
# https://blog.npmjs.org/post/78085451721/npms-self-signed-certificate-is-no-more
Michał 'rysiek' Woźniak's avatar
bugfix  
Michał 'rysiek' Woźniak committed
67
RUN npm config -g set ca ""
68

69 70 71 72 73 74 75 76
# need a newer Ruby
RUN add-apt-repository ppa:brightbox/ruby-ng && \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        ruby2.4 \
        ruby2.4-dev && \
    rm -rf /var/lib/apt/lists/*
    
77 78 79 80 81 82 83 84
# we might need to install some packages, but doing this in the entrypoint doesn't make any sense
ARG INSTALL_PACKAGES=
RUN if [ "$INSTALL_PACKAGES" != "" ]; then \
        export DEBIAN_FRONTEND=noninteractive && apt-get update && apt-get install -y \
            $INSTALL_PACKAGES \
            --no-install-recommends && \
        rm -rf /var/lib/apt/lists/* ; \
    fi
85
    
86 87 88
# Jekyll-related requirements
RUN gem2.4 install jekyll bundle -v '< 2'
RUN /usr/bin/npm install bower
Michał 'rysiek' Woźniak's avatar
Michał 'rysiek' Woźniak committed
89

90
VOLUME /output