Smaller docker images with multi-stage build #39

This commit is contained in:
Michael Mayer 2018-11-08 10:56:11 +01:00
parent f657bc5543
commit ac31141669
19 changed files with 279 additions and 130 deletions

14
scripts/build.sh Executable file
View file

@ -0,0 +1,14 @@
#!/usr/bin/env bash
VERSION=`date -u +0.%Y%m%d.%H%M%S`
BRANCH=`git rev-parse --abbrev-ref HEAD`
if [ ${BRANCH} == "master" ]; then
echo "Building production binary..."
go build -ldflags "-s -w -X main.version=${VERSION}" cmd/photoprism/photoprism.go
echo "Done."
else
echo "Building development binary..."
go build -ldflags "-X main.version=${VERSION}-${BRANCH}" cmd/photoprism/photoprism.go
echo "Done."
fi

10
scripts/docker-build.sh Executable file
View file

@ -0,0 +1,10 @@
#!/usr/bin/env bash
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Please provide a container image name and version" 1>&2
exit 1
else
echo "Building 'photoprism/$1:$2'...";
docker build -t photoprism/$1:latest -t photoprism/$1:$2 -f docker/$1/Dockerfile .
echo "Done"
fi

View file

@ -1,4 +1,19 @@
#!/usr/bin/env bash
if [ -z "$DOCKER_PASSWORD" ] || [ -z "$DOCKER_USERNAME" ]; then
echo "DOCKER_PASSWORD and DOCKER_USERNAME not set in your environment";
exit 1
fi
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
docker push photoprism/photoprism
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Please provide a container image name and version" 1>&2
exit 1
else
echo "Pushing 'photoprism/$1:$2' to Docker hub...";
docker push photoprism/$1:latest
docker push photoprism/$1:$2
echo "Done"
fi