69 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| FROM debian:9
 | |
| 
 | |
| # The Dockerfile for this project is split into 5 layers.
 | |
| # - Base:     The base image
 | |
| # - System:   System package installation
 | |
| # - Compile:  Custom compilation and installation
 | |
| # - Packages: Application packages (e.g. npm, pip etc)
 | |
| # - App:      Task runs and application prep
 | |
| # The order of the layers is based on which parts are likely to be
 | |
| #   modified the most.
 | |
| # The project source is added in the App layer so as not to invalidate
 | |
| #   the Dockerfile cache.
 | |
| 
 | |
| # SYSTEM
 | |
| SHELL ["/bin/bash","-ex","-c"]
 | |
| ENV DEBIAN_FRONTEND noninteractive
 | |
| RUN apt-get update && apt-get install -y\
 | |
|       build-essential\
 | |
|       closure-compiler\
 | |
|       cron\
 | |
|       locales\
 | |
|       libgdal-dev\
 | |
|       libpq-dev\
 | |
|       python\
 | |
|       python3-dev\
 | |
|       python3-pip\
 | |
|       python3\
 | |
|       rsync\
 | |
|       virtualenv\
 | |
|       wget\
 | |
|  && echo "en_GB.UTF-8 UTF-8" > /etc/locale.gen\
 | |
|  && locale-gen en_GB.UTF-8\
 | |
|  && dpkg-reconfigure locales\
 | |
|  && /usr/sbin/update-locale LANG=en_GB.UTF-8
 | |
| ENV LC_ALL en_GB.UTF-8
 | |
| 
 | |
| # COMPILE
 | |
| WORKDIR /build
 | |
| RUN wget https://nodejs.org/dist/v7.10.0/node-v7.10.0-linux-x64.tar.gz\
 | |
|  && tar -xvf node-v7.10.0-linux-x64.tar.gz\
 | |
|  && pushd node-v7.10.0-linux-x64\
 | |
|  && rsync --archive ./* /usr/local\
 | |
|  && popd\
 | |
|  && wget http://download.osgeo.org/proj/proj-4.9.1.tar.gz\
 | |
|  && wget http://download.osgeo.org/proj/proj-datumgrid-1.5.tar.gz\
 | |
|  && tar -xvf proj-4.9.1.tar.gz && cd proj-4.9.1/nad\
 | |
|  && tar -xvf ../../proj-datumgrid-1.5.tar.gz && cd ../ \
 | |
|  && ./configure && make && make install
 | |
| 
 | |
| RUN apt-get update && apt-get install -y gettext git
 | |
| 
 | |
| # PACKAGES
 | |
| WORKDIR /app
 | |
| COPY ./requirements/base.txt requirements-base.txt
 | |
| RUN python3 -m pip install -r requirements-base.txt
 | |
| RUN python3 -m pip install -e git+git://github.com/nitmir/django-cas-server.git@248658b52d3f87d7275a05d5e2c9773a0c2bc5a2#egg=django-cas-server
 | |
| 
 | |
| # APP
 | |
| WORKDIR /app
 | |
| COPY . .
 | |
| COPY ./support/cron/* /etc/cron.d/
 | |
| RUN chmod 0644 /etc/cron.d/*\
 | |
|  && touch /var/log/cron.log
 | |
| 
 | |
| EXPOSE 8000
 | |
| 
 | |
| CMD [ "python3", "manage.py", "migrate", "&&", \
 | |
|       "python3", "manage.py", "runserver", "0.0.0.0:8000" ]
 |