| 123456789101112131415161718192021222324252627282930313233343536 |
- #!/bin/bash
- set -euo pipefail
- set -x
- get_app() {
- mix run -e "Mix.Project.config[:app] |> IO.puts" | tail -1
- }
- get_version() {
- mix run -e "Mix.Project.config[:version] |> IO.puts" | tail -1
- }
- APP_NAME=`get_app`
- APP_VERSION=`get_version`
- OS_VERSION=${OS_VERSION?not set}
- MIX_ENV=${MIX_ENV-prod}
- ROOT_DIR=`pwd`
- SOURCE_DIR=$ROOT_DIR
- BUILD_DIR=$ROOT_DIR/priv/build/
- DOCKER_DIR=$BUILD_DIR/$OS_VERSION
- DOCKER_IMAGE_VERSION=`echo $APP_VERSION | sed "s#+#-#"`
- DOCKER_IMAGE_TAG=$APP_NAME-$OS_VERSION:$DOCKER_IMAGE_VERSION
- build_image() {
- docker build -t $DOCKER_IMAGE_TAG $DOCKER_DIR
- }
- build_binary() {
- docker run -e SOURCE_DIR=/app -e MIX_ENV=$MIX_ENV -v $ROOT_DIR:/app $DOCKER_IMAGE_TAG /app/priv/build/build.sh
- }
- build_image
- build_binary
|