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 DEBIAN_FRONTEND noninteractive
|
||||||
ENV HOME /root
|
ENV HOME /root
|
||||||
|
WORKDIR /
|
||||||
|
|
||||||
RUN apt-get update # 20JUN2014
|
# Install the dependencies.
|
||||||
RUN apt-get install -y git python-virtualenv python-dev libjpeg8 libjpeg62-dev libevent-dev gdebi-core g++ libmagic1
|
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 ###
|
### End common section ###
|
||||||
|
|
||||||
RUN apt-get install -y libldap2-dev libsasl2-dev
|
|
||||||
|
|
||||||
RUN apt-get install -y lxc aufs-tools
|
RUN apt-get install -y lxc aufs-tools
|
||||||
|
|
||||||
RUN usermod -v 100000-200000 -w 100000-200000 root
|
RUN usermod -v 100000-200000 -w 100000-200000 root
|
||||||
|
|
||||||
ADD binary_dependencies/builder binary_dependencies/builder
|
ADD binary_dependencies/builder binary_dependencies/builder
|
||||||
|
|
||||||
RUN gdebi --n binary_dependencies/builder/*.deb
|
RUN gdebi --n binary_dependencies/builder/*.deb
|
||||||
|
|
||||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
ADD . .
|
||||||
|
|
||||||
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 conf/init/svlogd_config /svlogd_config
|
ADD conf/init/svlogd_config /svlogd_config
|
||||||
ADD conf/init/preplogsdir.sh /etc/my_init.d/
|
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 DEBIAN_FRONTEND noninteractive
|
||||||
ENV HOME /root
|
ENV HOME /root
|
||||||
|
WORKDIR /
|
||||||
|
|
||||||
# Install the dependencies.
|
# 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
|
# 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
|
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
|
||||||
|
|
||||||
# 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/*
|
|
||||||
|
|
||||||
|
# Build the python dependencies
|
||||||
ADD requirements.txt requirements.txt
|
ADD requirements.txt requirements.txt
|
||||||
RUN virtualenv --distribute venv
|
RUN virtualenv --distribute venv
|
||||||
RUN venv/bin/pip install -r requirements.txt
|
RUN venv/bin/pip install -r requirements.txt
|
||||||
|
|
||||||
# Add the static assets and run grunt
|
# Install the binary dependencies
|
||||||
ADD grunt grunt
|
ADD binary_dependencies binary_dependencies
|
||||||
ADD static static
|
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 && npm install
|
||||||
RUN cd grunt && grunt
|
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/svlogd_config /svlogd_config
|
||||||
ADD conf/init/preplogsdir.sh /etc/my_init.d/
|
ADD conf/init/preplogsdir.sh /etc/my_init.d/
|
||||||
ADD conf/init/runmigration.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
|
ADD conf/init/webhookworker /etc/service/webhookworker
|
||||||
|
|
||||||
# Download any external libs.
|
# Download any external libs.
|
||||||
RUN mkdir static/fonts
|
RUN mkdir static/fonts static/ldn
|
||||||
RUN mkdir static/ldn
|
|
||||||
|
|
||||||
RUN venv/bin/python -m external_libraries
|
RUN venv/bin/python -m external_libraries
|
||||||
|
|
||||||
# Add the tests last because they're prone to accidental changes, then run them
|
# Run the tests
|
||||||
ADD test test
|
|
||||||
RUN TEST=true venv/bin/python -m unittest discover
|
RUN TEST=true venv/bin/python -m unittest discover
|
||||||
|
|
||||||
RUN rm -rf /conf/stack
|
|
||||||
VOLUME ["/conf/stack", "/var/log", "/datastorage"]
|
VOLUME ["/conf/stack", "/var/log", "/datastorage"]
|
||||||
|
|
||||||
EXPOSE 443 80
|
EXPOSE 443 80
|
||||||
|
|
Reference in a new issue