Files
hassio-addons-avm/Makefile

48 lines
1.5 KiB
Makefile

SHELL := /bin/bash
DOCKER_USER=mesteriis
DOCKER_REPO=hassio
GIT_SHA=$(shell git rev-parse --short HEAD)
BASE_IMAGE_DOCKERFILES=$(shell find ./base_docker_images/ -name 'Dockerfile')
ifneq ("$(wildcard .env)", "")
include .env
export $(shell sed 's/=.*//' .env)
else
$(shell cp .env.example .env)
include .env
export $(shell sed 's/=.*//' .env)
endif
ifneq ("$(wildcard .env)", "")
$(info $(shell echo "Loading environment variables from .env file..."))
$(info $(shell cat .env))
$(info $(shell echo "***********************************************"))
endif
.PHONY: build push all
all: build push
build:
@echo "Собираем все Docker образы..."
@for dockerfile in $(BASE_IMAGE_DOCKERFILES); do \
dir=$$(dirname $$dockerfile); \
tag_name=$$(echo $$dir | sed 's|^\./||' | tr '/' '-' | tr -d '[:space:]' | tr '[:upper:]' '[:lower:]'); \
base_tag="$(DOCKER_USER)/$(DOCKER_REPO)-$$tag_name"; \
echo "Собираем образ $$base_tag:$(GIT_SHA)"; \
docker build -t $$base_tag:$(GIT_SHA) -t $$base_tag:latest $$dir; \
done
push:
@echo "Отправляем образы в Docker Hub..."
@docker login
@for dockerfile in $(BASE_IMAGE_DOCKERFILES); do \
dir=$$(dirname $$dockerfile); \
tag_name=$$(echo $$dir | sed 's|^\./||' | tr '/' '-' | tr -d '[:space:]' | tr '[:upper:]' '[:lower:]'); \
base_tag="$(DOCKER_USER)/$(DOCKER_REPO)-$$tag_name"; \
echo "Пушим образ $$base_tag:$(GIT_SHA)"; \
docker push $$base_tag:$(GIT_SHA); \
docker push $$base_tag:latest; \
done