build_docker.sh 1.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
#!/bin/bash

set -e

SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
ROOT=$(
	cd "$(dirname "${SCRIPT_DIR}")" || exit 1
	pwd
)
SERVER_PKG_NAME=$(cat "${ROOT}"/PACKAGE)

###
# configurable variables
IMAGE_NAME=pegasus:latest
###

echo "Building image ${IMAGE_NAME}"
cd "${ROOT}" || exit 1

if [[ -z ${SERVER_PKG_NAME} ]]; then
	echo "SERVER_PKG_NAME is empty"
	exit 1
fi

if [[ ! -f "${ROOT}"/${SERVER_PKG_NAME}.tar.gz ]]; then
	echo "Failed to find package ${SERVER_PKG_NAME}.tar.gz in ${ROOT}"
	exit 1
else
	echo "Found package ${ROOT}/${SERVER_PKG_NAME}.tar.gz"
fi

cd "${ROOT}" || exit 1
mkdir -p ${IMAGE_NAME}
cp -f docker/dev/linux/entrypoint.sh ${IMAGE_NAME}/entrypoint.sh
cp -f docker/dev/linux/Dockerfile ${IMAGE_NAME}/Dockerfile
sed -i 's/@SERVER_PKG_NAME@/'"${SERVER_PKG_NAME}"'/' ${IMAGE_NAME}/Dockerfile
cp ${SERVER_PKG_NAME}.tar.gz ${IMAGE_NAME}

cd ${IMAGE_NAME} || exit 1
docker build --build-arg SERVER_PKG_NAME="${SERVER_PKG_NAME}" -t ${IMAGE_NAME} .

cd "${ROOT}" || exit 1
docker images

# clean up
rm -r ${IMAGE_NAME}