mirror of
https://github.com/kennethreitz/heroku-buildpack-python.git
synced 2026-06-05 23:10:16 +00:00
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).
This commit is contained in:
@@ -0,0 +1 @@
|
||||
.git/
|
||||
+7
-5
@@ -1,11 +1,13 @@
|
||||
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
|
||||
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
|
||||
rm -fr pip-pop
|
||||
|
||||
+11
-1
@@ -1,5 +1,7 @@
|
||||
# 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 :)
|
||||
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 :)
|
||||
|
||||
+2
-1
@@ -1 +1,2 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user