mirror of
https://github.com/retspen/webvirtcloud
synced 2024-12-25 23:55:24 +00:00
commit
1e6d177bba
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