Simplify the dockerfiles using a dockerignore.
This commit is contained in:
parent
6af6305edd
commit
78a2590631
3 changed files with 43 additions and 83 deletions
11
.dockerignore
Normal file
11
.dockerignore
Normal file
|
@ -0,0 +1,11 @@
|
|||
conf/stack
|
||||
screenshots
|
||||
test/data/registry
|
||||
venv
|
||||
.git
|
||||
.gitignore
|
||||
Bobfile
|
||||
README.md
|
||||
license.py
|
||||
requirements-nover.txt
|
||||
run-local.sh
|
|
@ -1,45 +1,30 @@
|
|||
FROM phusion/baseimage:0.9.10
|
||||
FROM phusion/baseimage:0.9.11
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV HOME /root
|
||||
WORKDIR /
|
||||
|
||||
RUN apt-get update # 20JUN2014
|
||||
RUN apt-get install -y git python-virtualenv python-dev libjpeg8 libjpeg62-dev libevent-dev gdebi-core g++ libmagic1
|
||||
# Install the dependencies.
|
||||
RUN apt-get update # 15JUL2014
|
||||
|
||||
# New ubuntu packages should be added as their own apt-get install lines below the existing install commands
|
||||
RUN apt-get install -y git python-virtualenv python-dev libjpeg8 libjpeg62-dev libevent-dev gdebi-core g++ libmagic1 phantomjs nodejs npm libldap2-dev libsasl2-dev
|
||||
|
||||
# Build the python dependencies
|
||||
ADD requirements.txt requirements.txt
|
||||
RUN virtualenv --distribute venv
|
||||
RUN venv/bin/pip install -r requirements.txt
|
||||
|
||||
### End common section ###
|
||||
|
||||
RUN apt-get install -y libldap2-dev libsasl2-dev
|
||||
|
||||
RUN apt-get install -y lxc aufs-tools
|
||||
|
||||
RUN usermod -v 100000-200000 -w 100000-200000 root
|
||||
|
||||
ADD binary_dependencies/builder binary_dependencies/builder
|
||||
|
||||
RUN gdebi --n binary_dependencies/builder/*.deb
|
||||
|
||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
ADD requirements.txt requirements.txt
|
||||
RUN virtualenv --distribute venv
|
||||
RUN venv/bin/pip install -r requirements.txt
|
||||
|
||||
ADD buildstatus buildstatus
|
||||
ADD data data
|
||||
ADD features features
|
||||
ADD storage storage
|
||||
ADD util util
|
||||
ADD workers workers
|
||||
|
||||
ADD app.py app.py
|
||||
ADD config.py config.py
|
||||
ADD license.pyc license.pyc
|
||||
|
||||
# Remove this if we ever stop depending on test data for the default config
|
||||
ADD test test
|
||||
|
||||
ADD conf conf
|
||||
RUN rm -rf /conf/stack
|
||||
ADD . .
|
||||
|
||||
ADD conf/init/svlogd_config /svlogd_config
|
||||
ADD conf/init/preplogsdir.sh /etc/my_init.d/
|
||||
|
|
|
@ -1,67 +1,35 @@
|
|||
FROM phusion/baseimage:0.9.10
|
||||
FROM phusion/baseimage:0.9.11
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV HOME /root
|
||||
WORKDIR /
|
||||
|
||||
# Install the dependencies.
|
||||
RUN apt-get update # 20JUN2014
|
||||
RUN apt-get update # 15JUL2014
|
||||
|
||||
# New ubuntu packages should be added as their own apt-get install lines below the existing install commands
|
||||
RUN apt-get install -y git python-virtualenv python-dev libjpeg8 libjpeg62-dev libevent-dev gdebi-core g++ libmagic1
|
||||
|
||||
# PhantomJS
|
||||
RUN apt-get install -y phantomjs
|
||||
|
||||
# Grunt
|
||||
RUN apt-get install -y nodejs npm
|
||||
RUN ln -s /usr/bin/nodejs /usr/bin/node
|
||||
RUN npm install -g grunt-cli
|
||||
|
||||
# LDAP
|
||||
RUN apt-get install -y libldap2-dev libsasl2-dev
|
||||
|
||||
ADD binary_dependencies binary_dependencies
|
||||
RUN gdebi --n binary_dependencies/*.deb
|
||||
|
||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
RUN apt-get install -y git python-virtualenv python-dev libjpeg8 libjpeg62-dev libevent-dev gdebi-core g++ libmagic1 phantomjs nodejs npm libldap2-dev libsasl2-dev
|
||||
|
||||
# Build the python dependencies
|
||||
ADD requirements.txt requirements.txt
|
||||
RUN virtualenv --distribute venv
|
||||
RUN venv/bin/pip install -r requirements.txt
|
||||
|
||||
# Add the static assets and run grunt
|
||||
ADD grunt grunt
|
||||
ADD static static
|
||||
# Install the binary dependencies
|
||||
ADD binary_dependencies binary_dependencies
|
||||
RUN gdebi --n binary_dependencies/*.deb
|
||||
|
||||
# Grunt
|
||||
RUN ln -s /usr/bin/nodejs /usr/bin/node
|
||||
RUN npm install -g grunt-cli
|
||||
|
||||
# Add all of the files!
|
||||
ADD . .
|
||||
|
||||
# Run grunt
|
||||
RUN cd grunt && npm install
|
||||
RUN cd grunt && grunt
|
||||
|
||||
# Add the backend assets
|
||||
ADD auth auth
|
||||
ADD buildstatus buildstatus
|
||||
ADD data data
|
||||
ADD endpoints endpoints
|
||||
ADD features features
|
||||
ADD screenshots screenshots
|
||||
ADD storage storage
|
||||
ADD templates templates
|
||||
ADD util util
|
||||
ADD workers workers
|
||||
|
||||
ADD license.pyc license.pyc
|
||||
ADD app.py app.py
|
||||
ADD application.py application.py
|
||||
ADD config.py config.py
|
||||
ADD initdb.py initdb.py
|
||||
ADD external_libraries.py external_libraries.py
|
||||
ADD alembic.ini alembic.ini
|
||||
|
||||
# Add the config
|
||||
ADD conf conf
|
||||
|
||||
# This command must be rm -f (not -rf) to fail in case stack is ever a dir,
|
||||
# which may contain secrets
|
||||
RUN rm -f /conf/stack
|
||||
|
||||
ADD conf/init/svlogd_config /svlogd_config
|
||||
ADD conf/init/preplogsdir.sh /etc/my_init.d/
|
||||
ADD conf/init/runmigration.sh /etc/my_init.d/
|
||||
|
@ -72,16 +40,12 @@ ADD conf/init/diffsworker /etc/service/diffsworker
|
|||
ADD conf/init/webhookworker /etc/service/webhookworker
|
||||
|
||||
# Download any external libs.
|
||||
RUN mkdir static/fonts
|
||||
RUN mkdir static/ldn
|
||||
|
||||
RUN mkdir static/fonts static/ldn
|
||||
RUN venv/bin/python -m external_libraries
|
||||
|
||||
# Add the tests last because they're prone to accidental changes, then run them
|
||||
ADD test test
|
||||
# Run the tests
|
||||
RUN TEST=true venv/bin/python -m unittest discover
|
||||
|
||||
RUN rm -rf /conf/stack
|
||||
VOLUME ["/conf/stack", "/var/log", "/datastorage"]
|
||||
|
||||
EXPOSE 443 80
|
||||
|
|
Reference in a new issue