Skip to content
Snippets Groups Projects
Commit e621ff4d authored by Ed Morley's avatar Ed Morley Committed by Kenneth Reitz
Browse files

Improve the workflow for generating binaries for Heroku-16 (#387)

* Updates bob-builder to a version that clears out the previous
  build directory, which prevents the stale files seen in #379.
* Adds a `buildenv-heroku-16` Make command to simplify the
  building and use of the Heroku-16 binary build environment.
* Sets `S3_BUCKET` and `S3_PREFIX` in the Docker image, to save
  having to do so manually each time.
* Removes the duplication of the bob-builder dependency between
  `Dockerfile` and `requirements.txt`.
* Disables the pip version check during Docker build, to avoid the
  noisy stderr warning about Ubuntu 16.04 pip being older (v8.1.1).
* Adds a `.dockerignore` to speed up the Docker build, by reducing
  the build context transferred to the daemon from 60MB to 2MB.
* Applies some Dockerfile best practices like disabling/removing
  cached files (since layer invalidation makes caching pointless).
parent 7a579e4e
No related branches found
No related tags found
No related merge requests found
.git/
FROM heroku/heroku:16-build
WORKDIR /app
ENV WORKSPACE_DIR=/app/builds
ENV WORKSPACE_DIR="/app/builds" \
S3_BUCKET="lang-python" \
S3_PREFIX="heroku-16/"
RUN apt-get update && apt-get install -y python-pip
RUN apt-get update && apt-get install -y python-pip && rm -rf /var/lib/apt/lists/*
# Install bob-builder application
RUN pip install bob-builder==0.0.5
COPY requirements.txt /app/
RUN pip install --disable-pip-version-check --no-cache-dir -r /app/requirements.txt
COPY . /app
\ No newline at end of file
COPY . /app
......@@ -13,7 +13,20 @@ test-heroku-16:
@docker run -v $(shell pwd):/buildpack:ro --rm -it -e "STACK=heroku-16" heroku/heroku:16-build bash -c 'cp -r /buildpack /buildpack_test; cd /buildpack_test/; test/run;'
@echo ""
buildenv-heroku-16:
@echo "Creating build environment (heroku-16)..."
@echo
@docker build --pull -t python-buildenv-heroku-16 .
@echo
@echo "Usage..."
@echo
@echo " $$ export AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar # Optional unless deploying"
@echo " $$ bob build runtimes/python-2.7.13"
@echo " $$ bob deploy runtimes/python-2.7.13"
@echo
@docker run -it --rm python-buildenv-heroku-16
tools:
git clone https://github.com/kennethreitz/pip-pop.git
mv pip-pop/bin/* vendor/pip-pop/
rm -fr pip-pop
\ No newline at end of file
rm -fr pip-pop
# Python Buildpack Binaries
For Cedar-14 stack
------------------
To get started with it, create an app on Heroku inside a clone of this repository, and set your S3 config vars:
......@@ -28,4 +30,12 @@ If this works, run `bob deploy` instead of `bob build` to have the result upload
To speed things up drastically, it'll usually be a good idea to `heroku run bash --size PX` instead.
Enjoy :)
\ No newline at end of file
For Heroku-16 stack
-------------------
1. Ensure GNU Make and Docker are installed.
2. From the root of the buildpack repository, run: `make buildenv-heroku-16`
3. Follow the instructions displayed!
Enjoy :)
bob-builder==0.0.5
# TODO: Replace this once the bob-builder changes on master are released:
https://github.com/kennethreitz/bob-builder/archive/54211376a8fb49c67ecbd6798bd45b55f4d125f4.zip
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment