summaryrefslogtreecommitdiffstats
path: root/Dockerfile
blob: dd103a5db58f3d58acadddbad14a026a6a746f62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
FROM centos:6.7
MAINTAINER Dylan William Hardison <dylan@mozilla.com>

RUN yum update -y && \
    yum install -y perl perl-core mod_perl httpd wget tar openssl mysql-libs gd git && \
    wget -q https://s3.amazonaws.com/moz-devservices-bmocartons/bmo/vendor.tar.gz && \
    tar -C /opt -zxvf /vendor.tar.gz bmo/local/ bmo/LIBS.txt bmo/cpanfile bmo/cpanfile.snapshot && \
    rm /vendor.tar.gz && \
    mkdir /opt/bmo/httpd && \
    ln -s /usr/lib64/httpd/modules /opt/bmo/httpd/modules && \
    mkdir /opt/bmo/httpd/conf && \
    cp {/etc/httpd/conf,/opt/bmo/httpd}/magic && \
    awk '{print $1}' > LIBS.txt \
        | perl -nE 'chomp; unless (-f $_) { $missing++; say $_ } END { exit 1 if $missing }' && \
    useradd -u 10001 -U app -m && \
    curl -L https://cpanmin.us > /usr/local/bin/cpanm && \
    chmod 755 /usr/local/bin/cpanm && \
    mkdir /opt/bmo/build && \
    rpm -qa > /tmp/rpms.list && \
    yum install -y gcc mod_perl-devel && \
    cpanm -l /opt/bmo/build --notest Apache2::SizeLimit && \
    yum erase -y $(rpm -qa | diff -u - /tmp/rpms.list | sed -n '/^-[^-]/ s/^-//p') && \
    rm -rf /opt/bmo/build/lib/perl5/{CPAN,Parse,JSON,ExtUtils} && \
    mkdir /usr/local/share/perl5 && \
    mv /opt/bmo/build/lib/perl5/x86_64-linux-thread-multi/ /usr/local/lib64/perl5/ && \
    mv /opt/bmo/build/lib/perl5/Linux /usr/local/share/perl5/ && \
    rm -vfr /opt/bmo/build && \
    rm /tmp/rpms.list /usr/local/bin/cpanm && \
    yum clean all -y

COPY . /app
WORKDIR /app
RUN ln -sv /opt/bmo/local /app/local && \
    chown -R app:app /app && \
    cp /app/docker_files/httpd.conf /opt/bmo/httpd/ && \
    mkdir /opt/bmo/bin && \
    cp /app/docker_files/init.pl /opt/bmo/bin/init.pl

USER app
RUN perl checksetup.pl --no-database --default-localconfig && \
    prove t && \
    rm -rf /app/data && mkdir /app/data

ENV PORT=8000

EXPOSE $PORT

ENTRYPOINT ["/opt/bmo/bin/init.pl"]
CMD ["httpd"]