diff --git a/bin/dockerize b/bin/dockerize new file mode 100755 index 000000000..30cfede3c --- /dev/null +++ b/bin/dockerize @@ -0,0 +1,36 @@ +set -euo pipefail + +AWS_REGION=${region:-eu-west-1} +AWS_DEPLOYMENT_ACCOUNT=${account:-463722570299} +AWS_REPOSITORY=${repo:-"${AWS_DEPLOYMENT_ACCOUNT}.dkr.ecr.${AWS_REGION}.amazonaws.com"} + +STAGE=${stage:-"dev"} +SHA_SHORT="$(git rev-parse --short HEAD)" +CUR_DATE="$(date +%Y%m%d%H%M%S)" +VERSION="$STAGE-$CUR_DATE-$SHA_SHORT" +IMAGE_NAME=${image_name:-promethai-${STAGE}-promethai-backend} + +REPO_NAME="${AWS_REPOSITORY}/${IMAGE_NAME}" +FULL_IMAGE_NAME="${REPO_NAME}:${VERSION}" +APP_DIR=${app_dir:-"."} + +PUBLISH=${publish:-false} + +echo "Building docker image ${FULL_IMAGE_NAME} located in dir ${app_dir}" + +pushd "${APP_DIR}" && + docker buildx build --platform linux/amd64 \ + --build-arg STAGE=${STAGE} \ + -t "${FULL_IMAGE_NAME}" . && + echo "${VERSION}" >/tmp/.DOCKER_IMAGE_VERSION && + echo "Successfully built docker image ${FULL_IMAGE_NAME}" + +if [ "${PUBLISH}" = true ]; then + echo "Pushing docker image ${FULL_IMAGE_NAME} to ECR repository to AWS account ${AWS_DEPLOYMENT_ACCOUNT}" + if [ "${PUBLISH}" = true ]; then + echo "logging in" + aws ecr get-login-password --region "${AWS_REGION}" | docker login --username AWS --password-stdin "${AWS_REPOSITORY}" + fi + docker push "${FULL_IMAGE_NAME}" && + echo "Successfully pushed docker image ${FULL_IMAGE_NAME} to ECR repository" +fi \ No newline at end of file