1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2024-12-25 15:45:23 +00:00

Dockerization

This commit is contained in:
Jethro Yu 2015-10-15 20:47:10 +08:00
parent bccfbb0010
commit 6f0c3dc5ac
5 changed files with 75 additions and 0 deletions

50
Dockerfile Normal file
View file

@ -0,0 +1,50 @@
FROM phusion/baseimage:0.9.17
MAINTAINER Jethro Yu <comet.jc@gmail.com>
RUN echo 'APT::Get::Clean=always;' >> /etc/apt/apt.conf.d/99AutomaticClean
RUN apt-get update -qqy
RUN DEBIAN_FRONTEND=noninteractive apt-get -qyy install \
-o APT::Install-Suggests=false \
git python-virtualenv python-dev libxml2-dev libvirt-dev zlib1g-dev nginx libsasl2-modules
ADD . /srv/webvirtcloud
RUN chown -R www-data:www-data /srv/webvirtcloud
# Setup webvirtcloud
RUN cd /srv/webvirtcloud && \
virtualenv venv && \
. venv/bin/activate && \
pip install -U pip && \
pip install -r conf/requirements.txt && \
chown -R www-data:www-data /srv/webvirtcloud
RUN cd /srv/webvirtcloud && . venv/bin/activate && \
python manage.py migrate && \
chown -R www-data:www-data /srv/webvirtcloud
# Setup Nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \
rm /etc/nginx/sites-enabled/default && \
chown -R www-data:www-data /var/lib/nginx
ADD conf/nginx/webvirtcloud.conf /etc/nginx/conf.d/
# Register services to runit
RUN mkdir /etc/service/nginx && \
mkdir /etc/service/nginx-log-forwarder && \
mkdir /etc/service/webvirtcloud && \
mkdir /etc/service/novnc
ADD conf/runit/nginx /etc/service/nginx/run
ADD conf/runit/nginx-log-forwarder /etc/service/nginx-log-forwarder/run
ADD conf/runit/novncd.sh /etc/service/novnc/run
ADD conf/runit/webvirtcloud.sh /etc/service/webvirtcloud/run
EXPOSE 80
EXPOSE 6080
# Define mountable directories.
#VOLUME []
# Use baseimage-docker's init system.
CMD ["/sbin/my_init"]

9
conf/runit/nginx Executable file
View file

@ -0,0 +1,9 @@
#!/bin/bash
set -e
if [[ ! -e /var/log/nginx/error.log ]]; then
# The Nginx log forwarder might be sleeping and waiting
# until the error log becomes available. We restart it in
# 1 second so that it picks up the new log file quickly.
(sleep 1 && sv restart /etc/service/nginx-log-forwarder)
fi
exec /usr/sbin/nginx

8
conf/runit/nginx-log-forwarder Executable file
View file

@ -0,0 +1,8 @@
#!/bin/bash
# Forwards the Nginx error.log to the Docker logs.
set -e
if [[ -e /var/log/nginx/error.log ]]; then
exec tail -F /var/log/nginx/error.log
else
exec sleep 10
fi

4
conf/runit/novncd.sh Executable file
View file

@ -0,0 +1,4 @@
#!/bin/sh
# `/sbin/setuser www-data` runs the given command as the user `www-data`.
cd /srv/webvirtcloud
exec /sbin/setuser www-data /srv/webvirtcloud/venv/bin/python /srv/webvirtcloud/console/novncd >> /var/log/novncd.log 2>&1

4
conf/runit/webvirtcloud.sh Executable file
View file

@ -0,0 +1,4 @@
#!/bin/sh
# `/sbin/setuser www-data` runs the given command as the user `www-data`.
cd /srv/webvirtcloud
exec /sbin/setuser www-data /srv/webvirtcloud/venv/bin/gunicorn webvirtcloud.wsgi:application -c /srv/webvirtcloud/gunicorn.conf.py >> /var/log/webvirtcloud.log 2>&1