Don't create wheels for dependencies but store offline:

Previously we used AWS which meant that we could create wheels
from our requirements and then install them offline which made
deployments quicker.

We're no longer using AWS so let's remove that.

Although CloudFoundry supports installing dependencies in an offline
environment as documented here:
http://docs.cloudfoundry.org/buildpacks/python/#vendoring

To achieve this we create a vendor/ directory which will contain
the packages to install. This uses --no-index and --find-links so will
not resolve for any dependencies from pypi. For this reason there is
assumed confidence that the vendor/ directory will contain all
of the dependencies we need.
This commit is contained in:
Imdad Ahad
2017-07-20 11:29:31 +01:00
parent 9a81489066
commit d06a72224e
3 changed files with 6 additions and 4 deletions

2
.gitignore vendored
View File

@@ -23,7 +23,7 @@ var/
.installed.cfg
*.egg
venv/
wheelhouse/
vendor/
# PyInstaller
# Usually these files are written by a python script from a template

View File

@@ -85,7 +85,9 @@ generate-version-file: ## Generates the app version file
.PHONY: build
build: dependencies generate-version-file ## Build project
npm run build
. venv/bin/activate && PIP_ACCEL_CACHE=${PIP_ACCEL_CACHE} pip-accel wheel --wheel-dir=wheelhouse -r requirements.txt
. venv/bin/activate && PIP_ACCEL_CACHE=${PIP_ACCEL_CACHE} pip-accel install -r requirements.txt
mkdir -p vendor/
cp -r ${PIP_ACCEL_CACHE}/sources/ vendor/
.PHONY: cf-build
cf-build: dependencies generate-version-file ## Build project
@@ -199,7 +201,7 @@ clean-docker-containers: ## Clean up any remaining docker containers
.PHONY: clean
clean:
rm -rf node_modules cache target venv .coverage wheelhouse
rm -rf node_modules cache target venv .coverage vendor
.PHONY: cf-login
cf-login: ## Log in to Cloud Foundry

View File

@@ -2,4 +2,4 @@
echo "Install dependencies"
cd /home/notify-app/notifications-admin;
pip3 install --find-links=wheelhouse -r /home/notify-app/notifications-admin/requirements.txt
pip3 install --find-links=vendor -r /home/notify-app/notifications-admin/requirements.txt