Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to docker buildx with multi arch flag #116

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
96 changes: 67 additions & 29 deletions build
Original file line number Diff line number Diff line change
@@ -1,41 +1,79 @@
#!/bin/bash
set -e

echo "--> BUILDING minimalcompact/thumbor"
docker build --pull -f thumbor/Dockerfile -t minimalcompact/thumbor thumbor/
# introspecting version by running the built image
THUMBOR_VERSION=`docker run --rm minimalcompact/thumbor bash -c "pip freeze |grep ^thumbor== | cut -d= -f 3"`
echo "THUMBOR VERSION: $THUMBOR_VERSION"
PLATFORM="linux/amd64"
EXTRA_ARGUMENTS=""
while true; do
case "$1" in
### Push requires authentication to minimalcompact docker hub
-p | --push)
EXTRA_ARGUMENTS="${EXTRA_ARGUMENTS} --push"
shift
;;
-b | --branch)
BRANCH="$2";
shift 2
;;
### Images have issues building multi arch, so hold behind a feature flag
-m | --multiarch)
PLATFORM="${PLATFORM},linux/arm64"
shift
;;
## Create should be run once, or in ci, if docker buildx ls doesnt contain supported platforms
-c | --create)
docker buildx create --use
shift
;;
-e | --extra )
EXTRA_ARGUMENTS="${EXTRA_ARGUMENTS} $2"
shift 2
;;
* ) break ;;
esac
done

EXTRA_ARGUMENTS="${EXTRA_ARGUMENTS} --platform $PLATFORM"
THUMBOR_VERSION=$(cat thumbor/requirements.txt| grep thumbor== | cut -d= -f 3)

echo "--> TAGGING minimalcompact/thumbor:$THUMBOR_VERSION"
docker tag minimalcompact/thumbor minimalcompact/thumbor:$THUMBOR_VERSION
echo "--> TAGGING minimalcompact/thumbor:latest"
docker tag minimalcompact/thumbor minimalcompact/thumbor:latest
echo "--> BUILDING minimalcompact/thumbor"
[ "$BRANCH" == "master" ] && EXTRA_TAG="--tag minimalcompact/thumbor:latest"
docker buildx build $EXTRA_ARGUMENTS --pull -f thumbor/Dockerfile \
--tag minimalcompact/thumbor \
--tag minimalcompact/thumbor:$THUMBOR_VERSION \
$EXTRA_TAG \
thumbor/

echo "--> BUILDING minimalcompact/thumbor:simd-sse4"
docker build --build-arg SIMD_LEVEL=sse4 -f thumbor/Dockerfile -t minimalcompact/thumbor-simd-sse4 thumbor/
echo "--> TAGGING minimalcompact/thumbor:$THUMBOR_VERSION-simd-sse4"
docker tag minimalcompact/thumbor-simd-sse4 minimalcompact/thumbor:$THUMBOR_VERSION-simd-sse4
echo "--> TAGGING minimalcompact/thumbor:latest-simd-sse4"
docker tag minimalcompact/thumbor-simd-sse4 minimalcompact/thumbor:latest-simd-sse4
[ "$BRANCH" == "master" ] && EXTRA_TAG="--tag minimalcompact/thumbor:latest-simd-sse4t"
docker buildx build $EXTRA_ARGUMENTS --build-arg SIMD_LEVEL=sse4 -f thumbor/Dockerfile \
--tag minimalcompact/thumbor-simd-sse4 \
--tag minimalcompact/thumbor:$THUMBOR_VERSION-simd-sse4 \
$EXTRA_TAG \
thumbor/


echo "--> BUILDING minimalcompact/thumbor:simd-avx2"
docker build --build-arg SIMD_LEVEL=avx2 -f thumbor/Dockerfile -t minimalcompact/thumbor-simd-avx2 thumbor/
echo "--> TAGGING minimalcompact/thumbor:$THUMBOR_VERSION-simd-avx2"
docker tag minimalcompact/thumbor-simd-avx2 minimalcompact/thumbor:$THUMBOR_VERSION-simd-avx2
echo "--> TAGGING minimalcompact/thumbor:latest-simd-avx2"
docker tag minimalcompact/thumbor-simd-avx2 minimalcompact/thumbor:latest-simd-avx2
[ "$BRANCH" == "master" ] && EXTRA_TAG="--tag minimalcompact/thumbor:latest-simd-avx2"
docker buildx build $EXTRA_ARGUMENTS --build-arg SIMD_LEVEL=avx2 -f thumbor/Dockerfile \
--tag minimalcompact/thumbor-simd-avx2 \
--tag minimalcompact/thumbor:$THUMBOR_VERSION-simd-avx2 \
$EXTRA_TAG \
thumbor/

echo "--> BUILDING minimalcompact/thumbor-nginx-proxy-cache"
docker build --pull -f nginx-proxy-cache/Dockerfile -t minimalcompact/thumbor-nginx-proxy-cache nginx-proxy-cache/
echo "--> TAGGING minimalcompact/thumbor-nginx-proxy-cache:$THUMBOR_VERSION"
docker tag minimalcompact/thumbor-nginx-proxy-cache minimalcompact/thumbor-nginx-proxy-cache:$THUMBOR_VERSION
echo "--> TAGGING minimalcompact/thumbor-nginx-proxy-cache:latest"
docker tag minimalcompact/thumbor-nginx-proxy-cache minimalcompact/thumbor-nginx-proxy-cache:latest
[ "$BRANCH" == "master" ] && EXTRA_TAG="--tag minimalcompact/thumbor-nginx-proxy-cache:latest"
docker buildx build $EXTRA_ARGUMENTS --pull -f nginx-proxy-cache/Dockerfile \
--tag minimalcompact/thumbor-nginx-proxy-cache \
--tag minimalcompact/thumbor-nginx-proxy-cache:$THUMBOR_VERSION \
$EXTRA_TAG \
nginx-proxy-cache/


echo "--> BUILDING minimalcompact/remotecv"
docker build --build-arg THUMBOR_TAG=latest -f remotecv/Dockerfile -t minimalcompact/remotecv remotecv/
echo "--> TAGGING minimalcompact/remotecv:$THUMBOR_VERSION"
docker tag minimalcompact/remotecv minimalcompact/remotecv:$THUMBOR_VERSION
echo "--> TAGGING minimalcompact/remotecv:latest"
docker tag minimalcompact/remotecv minimalcompact/remotecv:latest
[ "$BRANCH" == "master" ] && EXTRA_TAG="--tag minimalcompact/remotecv:latest"
docker buildx build --platform=linux/amd64,linux/arm64 --build-arg THUMBOR_TAG=latest -f remotecv/Dockerfile \
--tag minimalcompact/remotecv \
--tag minimalcompact/remotecv:$THUMBOR_VERSION \
$EXTRA_TAG \
remotecv/

30 changes: 0 additions & 30 deletions push

This file was deleted.

1 change: 0 additions & 1 deletion thumbor/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ ENV SHELL bash
ENV WORKON_HOME /app
WORKDIR /app

RUN pip install thumbor==7.0.0
COPY requirements.txt /app/requirements.txt
RUN pip install --trusted-host None --no-cache-dir -r /app/requirements.txt
RUN pip install --no-dependencies tc-aws==6.2.15
Expand Down
1 change: 1 addition & 0 deletions thumbor/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ redis==3.5.3
raven==6.10.0
cairosvg==2.5.2
pycurl==7.44.1
thumbor==7.0.0