Skip to content

Commit

Permalink
Bug 1077510: Check a Vagrant/Docker project file (excl DB content) in…
Browse files Browse the repository at this point in the history
…to the Bugzilla repo
  • Loading branch information
dklawren committed Jan 6, 2015
1 parent ee940fd commit 7bbb242
Show file tree
Hide file tree
Showing 13 changed files with 1,324 additions and 0 deletions.
1 change: 1 addition & 0 deletions contrib/docker/CLOBBER
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Update this file to force the image to be rebuilt from scratch.
95 changes: 95 additions & 0 deletions contrib/docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
FROM centos:centos7
MAINTAINER David Lawrence <dkl@mozilla.com>

ADD CLOBBER /CLOBBER

# Environment
ENV container docker
ENV BUGZILLA_USER bugzilla
ENV BUGZILLA_REPO https://git.mozilla.org/webtools/bmo/bugzilla.git
ENV BUGZILLA_BRANCH master
ENV BUGZILLA_HOME /home/$BUGZILLA_USER/devel/htdocs/bmo
ENV CPANM cpanm --quiet --notest --skip-satisfied

# Software installation
RUN yum -y -q install https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm \
&& yum clean all
RUN yum -y -q install epel-release \
&& yum clean all
RUN yum -y -q install supervisor mod_perl mod_perl-devel openssh-server openssh \
passwd mysql-community-server mysql-community-devel git sudo perl-App-cpanminus \
tar gcc gcc-c++ make unzip mpfr-devel vim-enhanced openssl-devel gmp-devel \
gd-devel postfix graphviz ImageMagick-devel patch aspell-devel perl-CPAN \
&& yum clean all

# User configuration
RUN useradd -m -G wheel -u 1000 -s /bin/bash $BUGZILLA_USER
RUN passwd -u -f $BUGZILLA_USER
RUN echo "bugzilla:bugzilla" | chpasswd

# sshd
RUN mkdir -p /var/run/sshd; chmod -rx /var/run/sshd
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
RUN sed -ri 's/#UseDNS yes/UseDNS no/'g /etc/ssh/sshd_config

# Apache configuration
ADD bugzilla.conf /etc/httpd/conf.d/bugzilla.conf

# MySQL configuration
ADD my.cnf /etc/my.cnf
RUN chmod 644 /etc/my.cnf; chown root.root /etc/my.cnf
RUN rm -rf /etc/mysql
RUN rm -rf /var/lib/mysql/*
RUN /usr/bin/mysql_install_db --user=$BUGZILLA_USER --basedir=/usr --datadir=/var/lib/mysql

# Sudoer configuration
ADD sudoers /etc/sudoers
RUN chown root.root /etc/sudoers; chmod 440 /etc/sudoers

# Clone the code repo
RUN su $BUGZILLA_USER -c "git clone $BUGZILLA_REPO -b $BUGZILLA_BRANCH $BUGZILLA_HOME"

# Install Perl dependencies
# Some modules are explicitly installed due to strange dependency issues
RUN cd $BUGZILLA_HOME \
&& $CPANM DBD::mysql \
&& $CPANM HTML::TreeBuilder \
&& $CPANM HTML::FormatText \
&& $CPANM Apache2::SizeLimit \
&& $CPANM Software::License \
&& $CPANM Image::Magick@6.77 \
&& $CPANM Fatal \
&& $CPANM XMLRPC::Lite \
&& $CPANM Email::Sender \
&& $CPANM Net::SMTP::SSL \
&& $CPANM HTML::FormatText::WithLinks \
&& $CPANM Text::Markdown \
&& $CPANM --installdeps --with-recommends .

# Bugzilla configuration
ADD checksetup_answers.txt /checksetup_answers.txt
ADD generate_bmo_data.pl /generate_bmo_data.pl
ADD bugzilla_config.sh /bugzilla_config.sh
RUN chmod 755 /bugzilla_config.sh /generate_bmo_data.pl
RUN /bugzilla_config.sh

# Final permissions fix
RUN chmod 711 /home/$BUGZILLA_USER
RUN chown -R $BUGZILLA_USER.$BUGZILLA_USER /home/$BUGZILLA_USER

# Run any custom configuration
ADD my_config.sh /my_config.sh
RUN chmod 755 /my_config.sh
RUN /my_config.sh

# Networking
RUN echo "NETWORKING=yes" > /etc/sysconfig/network
EXPOSE 80
EXPOSE 22

# Supervisor
ADD supervisord.conf /etc/supervisord.conf
RUN chmod 700 /etc/supervisord.conf
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
Loading

0 comments on commit 7bbb242

Please sign in to comment.