From e3e2c7c0273499f832ee692ca63620cd8aa8bda1 Mon Sep 17 00:00:00 2001 From: Dylan William Hardison Date: Mon, 3 Jul 2017 12:09:44 -0700 Subject: Bug 1361439 - Create dockerflow-compliant container that runs a BMO web head --- Dockerfile | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Dockerfile (limited to 'Dockerfile') diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..dd103a5db --- /dev/null +++ b/Dockerfile @@ -0,0 +1,49 @@ +FROM centos:6.7 +MAINTAINER Dylan William Hardison + +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"] -- cgit v1.2.3-24-g4f1b