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