cross_build.sh 726 B

12345678910111213141516171819202122232425262728293031
  1. #!/bin/bash
  2. set -euo pipefail
  3. ROOT_DIR=`pwd`
  4. SOURCE_DIR=$ROOT_DIR
  5. BUILD_DIR=$ROOT_DIR/priv/build/
  6. APP_NAME=${APP_NAME?not set}
  7. OS_VERSION=${OS_VERSION?not set}
  8. MIX_ENV=${MIX_ENV-prod}
  9. APP_VERSION=$(cat $SOURCE_DIR/VERSION | tail -1)
  10. DOCKER_DIR=$BUILD_DIR/$OS_VERSION
  11. DOCKER_IMAGE_VERSION=`echo $APP_VERSION | sed "s#+#-#"`
  12. DOCKER_IMAGE_TAG=$APP_NAME-$OS_VERSION:$DOCKER_IMAGE_VERSION
  13. build_image() {
  14. docker build -t $DOCKER_IMAGE_TAG $DOCKER_DIR
  15. }
  16. build_binary() {
  17. docker run -e SOURCE_DIR=/app \
  18. -e MIX_ENV=$MIX_ENV \
  19. -e DOCKER_IMAGE_TAG=$DOCKER_IMAGE_TAG \
  20. -v $ROOT_DIR:/app \
  21. $DOCKER_IMAGE_TAG \
  22. /app/priv/build/build.sh
  23. }
  24. build_image
  25. build_binary