mirror of
				https://github.com/retspen/webvirtcloud
				synced 2025-07-31 12:41:08 +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…
	
	Add table
		Add a link
		
	
		Reference in a new issue