mirror of
https://github.com/retspen/webvirtcloud
synced 2024-10-31 19:44:16 +00:00
Dockerization
This commit is contained in:
parent
bccfbb0010
commit
6f0c3dc5ac
5 changed files with 75 additions and 0 deletions
50
Dockerfile
Normal file
50
Dockerfile
Normal 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
9
conf/runit/nginx
Executable 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
8
conf/runit/nginx-log-forwarder
Executable 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
4
conf/runit/novncd.sh
Executable 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
4
conf/runit/webvirtcloud.sh
Executable 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
|
Loading…
Reference in a new issue