summaryrefslogtreecommitdiff
path: root/devobsserver/Dockerfile
diff options
context:
space:
mode:
Diffstat (limited to 'devobsserver/Dockerfile')
-rwxr-xr-xdevobsserver/Dockerfile175
1 files changed, 175 insertions, 0 deletions
diff --git a/devobsserver/Dockerfile b/devobsserver/Dockerfile
new file mode 100755
index 0000000..ff515f2
--- /dev/null
+++ b/devobsserver/Dockerfile
@@ -0,0 +1,175 @@
+#===============================================================================
+# This file is designed for Tizen infrastructure.
+# Author onstudy@samsung.com
+#===============================================================================
+FROM flavio/opensuse-12-3
+
+MAINTAINER onstudy@samsung.com
+
+#### If you are use the proxy in your enviroment, add below line on building.####
+#ENV ftp_proxy ftp://<ip>
+#ENV http_proxy http://<ip>
+#ENV https_proxy https://<ip>
+#ENV socks_proxy socks://<ip>
+
+#### addrepo opensuse 12.3 update os ####
+RUN zypper --non-interactive addrepo "http://download.opensuse.org/update/12.3/openSUSE:12.3:Update.repo"
+
+#### addrepo opensuse 12.3 obs v2.4 ####
+RUN zypper --non-interactive addrepo "http://download.opensuse.org/repositories/OBS:/Server:/2.4/openSUSE_12.3/OBS:Server:2.4.repo"
+### deleted repo in opensuse download site 07/24 ###
+#RUN zypper --non-interactive addrepo "http://download.opensuse.org/repositories/devel:/languages:/python/openSUSE_12.3/devel:languages:python.repo"
+
+#### addrepo tizen services,tools ####
+RUN zypper ar -Gf -t rpm-md -n "Tizen Services (openSUSE_12.3)" http://download.tizen.org/services/archive/0.15.13/openSUSE_12.3 tizen-services
+RUN zypper mr -p 1 "Tizen Services (openSUSE_12.3)"
+RUN zypper ar -Gf -t rpm-md -n "Tizen Tools (openSUSE_12.3)" http://download.tizen.org/tools/latest-release/openSUSE_12.3 tizen-tools
+RUN zypper mr -p 1 "Tizen Tools (openSUSE_12.3)"
+
+RUN zypper --gpg-auto-import-keys --non-interactive refresh
+
+#### Install some useful or needed tools
+RUN zypper --non-interactive --no-gpg-checks ref
+RUN zypper --non-interactive in --recommends vim tar wget telnet sudo
+
+#### INSTALL supervisor ####
+# download from http://download.opensuse.org/repositories/devel:/languages:/python/openSUSE_12.3/
+# devel:languages:python.repo
+ADD ./supervisor/supervisor-3.1.3-1.1.noarch.rpm /
+ADD ./supervisor/python-meld3-1.0.0-1.1.noarch.rpm /
+RUN zypper --non-interactive in --recommends python-meld3-1.0.0-1.1.noarch.rpm
+RUN zypper --non-interactive in --recommends supervisor-3.1.3-1.1.noarch.rpm
+RUN rm supervisor-3.1.3-1.1.noarch.rpm
+RUN rm python-meld3-1.0.0-1.1.noarch.rpm
+
+#### INSTALL OBS SERVER ####
+RUN zypper --non-interactive in --recommends obs-server
+
+RUN zypper --non-interactive in --recommends obs-utils
+RUN zypper --non-interactive in --recommends obs-api
+
+RUN zypper --non-interactive in --recommends obs-service-gbs
+RUN zypper --non-interactive in --recommends obs-source_service
+RUN zypper --non-interactive in --recommends qemu-linux-user
+RUN zypper --non-interactive in --recommends build-initvm-x86_64 build-initvm-i586
+#### Jenkins trigger#####
+RUN zypper --non-interactive in --recommends obs-event-plugin
+
+#### INSTALL APACHE2 ####
+RUN zypper --non-interactive in --recommends apache2 apache2-mod_xforward rubygem-passenger-apache2 memcached
+RUN zypper --non-interactive in --recommends \
+ php5 php5-gd php5-gettext php5-mbstring php5-mysql \
+ php5-pear php5-suhosin apache2-mod_php5 php5-bcmath \
+ php5-bz2 php5-calendar php5-curl php5-ftp php5-gmp \
+ php5-imap php5-ldap php5-mcrypt php5-odbc php5-openssl \
+ php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp \
+ php5-soap php5-sockets php5-sysvsem php5-wddx php5-xmlrpc \
+ php5-xsl php5-exif php5-fastcgi php5-sysvmsg php5-sysvshm
+RUN sed -i 's/variables_order = "GPCS"/variables_order = "EGPCS"/g' /etc/php5/apache2/php.ini
+
+RUN a2enmod passenger && a2enmod rewrite && a2enmod proxy && a2enmod proxy_http && a2enmod xforward && a2enmod headers && a2enmod status
+RUN a2enflag SSL
+
+#### INSTALL NTP ####
+# ntp is essential protocol to synchronize time across multiple servers #
+RUN zypper --non-interactive in --recommends ntp
+
+#### INSTALL IPUTILS ####
+# use ping from the ldap
+RUN zypper --non-interactive in --recommends iputils
+
+#### INSTALL PERL-GD ####
+# use rebuild_time grapth
+RUN zypper --non-interactive in --recommends perl-GD
+
+#### INSTALL TO USE GIT-BUILDPACKAGE ####
+RUN zypper --non-interactive in --recommends obs-service-git-buildpackage
+
+#### INSTALL librpm-tizen ####
+#require pacakge of librpm-tizen
+RUN zypper --non-interactive in --recommends mozilla-nss
+RUN zypper --non-interactive in --recommends librpm-tizen
+
+RUN zypper clean
+
+#### OBS Configuration ####
+ADD ./obsserver/srv/www/obs/webui/lib/frontend_compat.rb /srv/www/obs/webui/lib/frontend_compat.rb
+ADD ./obsserver/srv/www/obs/webui/app/assets/images/obs-logo_small.png /srv/www/obs/webui/app/assets/images/obs-logo_small.png
+ADD ./obsserver/srv/www/obs/webui/app/assets/images/obs-logo_small.png /srv/www/obs/webui/public/assets/obs-logo_small.png
+ADD ./obsserver/srv/www/obs/webui/app/assets/images/obs-logo_small.png /srv/www/obs/webui/public/assets/obs-logo_small-4c29268da14c390cb1aa768aa440acde.png
+
+ADD ./obsserver/etc/apache2/vhosts.d/obs.conf /etc/apache2/vhosts.d/obs.conf
+RUN sed -i 's/^\(Include \/etc\/apache2\/listen.conf.*\)$/# \1/' /etc/apache2/httpd.conf \
+ && echo "Include /etc/apache2/conf.d/mod_passenger.conf" >> /etc/apache2/httpd.conf \
+ && echo "repo-cache-dir = /srv/obs/git-buildpackage-repos/" >> /etc/obs/services/gbs \
+ && mkdir -p /srv/obs/git-buildpackage-repos/ && chown -R obsrun:obsrun /srv/obs/git-buildpackage-repos/
+
+#### "Adjust configuration for this hostname" ####
+#### use local host to avoid SSL verification between webui and api ####
+RUN sed -i 's,^ username: .*, username: <%= ENV['"'"'MYSQL_USER'"'"'] %>,' /srv/www/obs/api/config/database.yml \
+ && sed -i 's,^ password: .*, password: <%= ENV['"'"'MYSQL_PASSWORD'"'"'] %>,' /srv/www/obs/api/config/database.yml \
+ && sed -i 's,^ username: .*, username: <%= ENV['"'"'MYSQL_USER'"'"'] %>,' /srv/www/obs/webui/config/database.yml \
+ && sed -i 's,^ password: .*, password: <%= ENV['"'"'MYSQL_PASSWORD'"'"'] %>,' /srv/www/obs/webui/config/database.yml
+
+
+RUN sed -i 's/#use_xforward/use_xforward/g' /srv/www/obs/webui/config/options.yml \
+ && sed -i 's/#use_xforward/use_xforward/g' /srv/www/obs/api/config/options.yml \
+
+ && sed -i 's,^frontend_host: .*,frontend_host: "localhost",' /srv/www/obs/webui/config/options.yml \
+ && sed -i 's,^frontend_port: .*,frontend_port: 81,' /srv/www/obs/webui/config/options.yml \
+ && sed -i 's,^frontend_protocol: .*,frontend_protocol: "'"http"'",' /srv/www/obs/webui/config/options.yml
+
+#### Fix ldap connection error(login user page)
+RUN sed -i 's/ realname.toutf8/#fix FATAL error 2015.03.18 realname.toutf8/g' /srv/www/obs/api/app/models/user.rb
+
+#### Fix Arm build error from qemu reg ####
+#### qemu-arm-static --> qemu-arm-binfmt ####
+RUN sed -i 's/static:/binfmt:P/g' /usr/lib/build/qemu-reg
+
+#### Fix Http 500 Error ####
+RUN sed -i '/our $ipaccess = {/a\ '"'"172'\\..*'"'"' => '"'"'rw'"'"'\, # only local docker ip' /usr/lib/obs/server/BSConfig.pm \
+ && sed -i 's,^our.*\$repodownload.*=.*,our $repodownload = "http://$hostname:82";,' /usr/lib/obs/server/BSConfig.pm
+
+RUN mkdir -p /srv/obs/certs && chown obsrun:obsrun /srv/obs/certs
+RUN mkdir -p /srv/obs/repos && chown -R obsrun:obsrun /srv/obs/repos/
+RUN chown -R wwwrun:www /srv/www/obs/api && chown -R wwwrun:www /srv/www/obs/webui
+
+#### ADD RSYNC CONFIG ####
+RUN sed -i 's/yes/no/g' /etc/xinetd.d/rsync
+RUN rm /etc/rsyncd.conf
+
+#### FIX MYSQL ####
+RUN sed -i '/^\[mysqld\]/a\tmpdir=\/tmp\/' /etc/my.cnf
+
+#### START SCRIPT ####
+RUN mkdir -p /srv/script
+ADD script/initdb.sh /srv/script/initdb.sh
+ADD ./script/rsync.sh /srv/script/rsync.sh
+ADD ./script/obsservice.sh /srv/script/obsservice.sh
+ADD ./script/startup.sh /srv/script/startup.sh
+ADD ./script/ca.sh /srv/script/ca.sh
+ADD ./script/db.sh /srv/script/db.sh
+ADD ./script/repos.sh /srv/script/repos.sh
+RUN chmod +x /srv/script/*
+
+ADD ./supervisor/supervisord.conf /etc/supervisord.conf
+
+# Set environment variables.
+ENV HOME /root
+ENV TERM xterm
+ENV TMOUT 1800
+#### mysql database ####
+ENV MYSQL_ROOT_PASSWORD opensuse
+ENV MYSQL_API_DATABASE api_production
+ENV MYSQL_WEBUI_DATABASE webui_production
+ENV MYSQL_USER obs
+ENV MYSQL_PASSWORD obspassword
+ENV MYSQL_DATA_DIR_DEFAULT /var/lib/mysql
+
+EXPOSE 80 81 82 443 444 5152 5252 5352
+EXPOSE 3306
+WORKDIR /srv/script
+VOLUME ["/etc/mysql", "/var/lib/mysql","/var/run/mysql"]
+
+CMD ["/bin/bash","/srv/script/startup.sh"]
+