mirror of
https://github.com/zokradonh/kopano-docker
synced 2025-06-06 23:46:24 +00:00
Makefile adjustments reorder Makefile adds image for kwmserver adds image for meet add Meet to compose clean up proxy configuration move kcconf.py into the base image
209 lines
6.8 KiB
Makefile
209 lines
6.8 KiB
Makefile
# if not run in travis, get docker_login and _pwd from file
|
|
ifndef TRAVIS
|
|
docker_repo := zokradonh
|
|
docker_login := `cat ~/.docker-account-user`
|
|
docker_pwd := `cat ~/.docker-account-pwd`
|
|
endif
|
|
|
|
base_download_version := $(shell ./version.sh core)
|
|
core_download_version := $(shell ./version.sh core)
|
|
meet_download_version := $(shell ./version.sh meet)
|
|
webapp_download_version := $(shell ./version.sh webapp)
|
|
zpush_download_version := $(shell ./version.sh zpush)
|
|
|
|
KOPANO_CORE_REPOSITORY_URL := file:/kopano/repo/core
|
|
KOPANO_MEET_REPOSITORY_URL := file:/kopano/repo/meet
|
|
KOPANO_WEBAPP_REPOSITORY_URL := file:/kopano/repo/webapp
|
|
KOPANO_WEBAPP_FILES_REPOSITORY_URL := file:/kopano/repo/files
|
|
KOPANO_WEBAPP_MDM_REPOSITORY_URL := file:/kopano/repo/mdm
|
|
KOPANO_WEBAPP_SMIME_REPOSITORY_URL := file:/kopano/repo/smime
|
|
KOPANO_ZPUSH_REPOSITORY_URL := http://repo.z-hub.io/z-push:/final/Debian_9.0/
|
|
RELEASE_KEY_DOWNLOAD := 0
|
|
DOWNLOAD_COMMUNITY_PACKAGES := 1
|
|
|
|
COMPOSE_FILE := docker-compose.yml-example
|
|
-include .env
|
|
export
|
|
|
|
# convert lowercase componentname to uppercase
|
|
COMPONENT = $(shell echo $(component) | tr a-z A-Z)
|
|
|
|
build-all: build-base build-core build-konnect build-kwmserver build-ldap-demo build-meet build-playground build-ssl build-utils build-web build-webapp build-zpush
|
|
|
|
.PHONY: build
|
|
build: component ?= base
|
|
build:
|
|
docker build \
|
|
--build-arg docker_repo=${docker_repo} \
|
|
--build-arg KOPANO_CORE_VERSION=${core_download_version} \
|
|
--build-arg KOPANO_$(COMPONENT)_VERSION=${$(component)_download_version} \
|
|
--build-arg KOPANO_CORE_REPOSITORY_URL=$(KOPANO_CORE_REPOSITORY_URL) \
|
|
--build-arg KOPANO_MEET_REPOSITORY_URL=$(KOPANO_MEET_REPOSITORY_URL) \
|
|
--build-arg KOPANO_WEBAPP_REPOSITORY_URL=$(KOPANO_WEBAPP_REPOSITORY_URL) \
|
|
--build-arg KOPANO_WEBAPP_FILES_REPOSITORY_URL=$(KOPANO_WEBAPP_FILES_REPOSITORY_URL) \
|
|
--build-arg KOPANO_WEBAPP_MDM_REPOSITORY_URL=$(KOPANO_WEBAPP_MDM_REPOSITORY_URL) \
|
|
--build-arg KOPANO_WEBAPP_SMIME_REPOSITORY_URL=$(KOPANO_WEBAPP_SMIME_REPOSITORY_URL) \
|
|
--build-arg KOPANO_ZPUSH_REPOSITORY_URL=$(KOPANO_ZPUSH_REPOSITORY_URL) \
|
|
--build-arg RELEASE_KEY_DOWNLOAD=$(RELEASE_KEY_DOWNLOAD) \
|
|
--build-arg DOWNLOAD_COMMUNITY_PACKAGES=$(DOWNLOAD_COMMUNITY_PACKAGES) \
|
|
--build-arg ADDITIONAL_KOPANO_PACKAGES="$(ADDITIONAL_KOPANO_PACKAGES)" \
|
|
--build-arg ADDITIONAL_KOPANO_WEBAPP_PLUGINS="$(ADDITIONAL_KOPANO_WEBAPP_PLUGINS)" \
|
|
-t $(docker_repo)/kopano_$(component) $(component)/
|
|
|
|
.PHONY: build-simple
|
|
build-simple: component ?= ssl
|
|
build-simple:
|
|
docker build -t $(docker_repo)/kopano_$(component) $(component)/
|
|
|
|
build-base:
|
|
component=base make build
|
|
|
|
build-core:
|
|
component=core make build
|
|
|
|
build-konnect:
|
|
component=konnect make build-simple
|
|
|
|
build-kwmserver:
|
|
component=kwmserver make build-simple
|
|
|
|
build-ldap-demo:
|
|
component=ldap_demo make build-simple
|
|
|
|
build-meet:
|
|
component=meet make build
|
|
|
|
build-playground:
|
|
component=playground make build-simple
|
|
|
|
build-ssl:
|
|
component=ssl make build-simple
|
|
|
|
build-utils: build-core
|
|
component=utils make build
|
|
|
|
build-web:
|
|
component=web make build-simple
|
|
|
|
build-webapp:
|
|
component=webapp make build
|
|
|
|
build-zpush:
|
|
component=zpush make build
|
|
|
|
tag-container: component ?= base
|
|
tag-container:
|
|
@echo 'create tag $($(component)_version)'
|
|
docker tag $(docker_repo)/kopano_$(component) $(docker_repo)/kopano_$(component):${$(component)_version}
|
|
@echo 'create tag latest'
|
|
docker tag $(docker_repo)/kopano_$(component) $(docker_repo)/kopano_$(component):latest
|
|
git commit -m 'ci: committing changes for $(component)' -- $(component) || true
|
|
git tag $(component)/${$(component)_version} || true
|
|
|
|
tag-base:
|
|
$(eval base_version := \
|
|
$(shell docker run --rm $(docker_repo)/kopano_base cat /kopano/buildversion))
|
|
component=base make tag-container
|
|
|
|
tag-core:
|
|
$(eval core_version := \
|
|
$(shell docker run --rm $(docker_repo)/kopano_core cat /kopano/buildversion | cut -d- -f2))
|
|
component=core make tag-container
|
|
|
|
tag-konnect:
|
|
$(eval konnect_version := \
|
|
$(shell docker run --rm $(docker_repo)/kopano_konnect env | grep CODE_VERSION | cut -d'=' -f2))
|
|
component=konnect make tag-container
|
|
|
|
tag-kwmserver:
|
|
$(eval kwmserver_version := \
|
|
$(shell docker run --rm $(docker_repo)/kopano_kwmserver env | grep CODE_VERSION | cut -d'=' -f2))
|
|
component=kwmserver make tag-container
|
|
|
|
tag-meet:
|
|
$(eval meet_version := \
|
|
$(shell docker run --rm $(docker_repo)/kopano_meet cat /kopano/buildversion | grep meet | cut -d- -f2 | cut -d+ -f1))
|
|
component=meet make tag-container
|
|
|
|
tag-utils:
|
|
$(eval utils_version := \
|
|
$(shell docker run --rm $(docker_repo)/kopano_utils cat /kopano/buildversion | cut -d- -f2))
|
|
component=utils make tag-container
|
|
|
|
tag-web:
|
|
$(eval web_version := \
|
|
$(shell docker run --rm $(docker_repo)/kopano_web env | grep CODE_VERSION | cut -d'=' -f2))
|
|
component=web make tag-container
|
|
|
|
tag-webapp:
|
|
$(eval webapp_version := \
|
|
$(shell docker run --rm $(docker_repo)/kopano_webapp cat /kopano/buildversion | grep webapp | cut -d- -f2 | cut -d+ -f1))
|
|
component=webapp make tag-container
|
|
|
|
tag-zpush:
|
|
$(eval zpush_version := \
|
|
$(shell docker run --rm $(docker_repo)/kopano_zpush cat /kopano/buildversion | tail -n 1 | grep -o -P '(?<=-).*(?=\+)'))
|
|
component=zpush make tag-container
|
|
|
|
# Docker publish
|
|
repo-login:
|
|
@docker login -u $(docker_login) -p $(docker_pwd)
|
|
|
|
publish: repo-login publish-base publish-core publish-konnect publish-kwmserver publish-meet publish-playground publish-ssl publish-utils publish-web publish-webapp publish-zpush
|
|
|
|
publish-container: component ?= base
|
|
publish-container:
|
|
@echo 'publish latest to $(docker_repo)/kopano_$(component)'
|
|
docker push $(docker_repo)/kopano_$(component):${$(component)_version}
|
|
docker push $(docker_repo)/kopano_$(component):latest
|
|
|
|
publish-base: build-base tag-base
|
|
component=base make publish-container
|
|
|
|
publish-core: build-core tag-core
|
|
component=core make publish-container
|
|
|
|
publish-konnect: build-konnect tag-konnect
|
|
component=konnect make publish-container
|
|
|
|
publish-kwmserver: build-kwmserver tag-kwmserver
|
|
component=kwmserver make publish-container
|
|
|
|
publish-meet: build-meet tag-meet
|
|
component=meet make publish-container
|
|
|
|
publish-playground: build-playground
|
|
docker push $(docker_repo)/kopano_playground:latest
|
|
|
|
publish-ssl: build-ssl
|
|
docker push $(docker_repo)/kopano_ssl:latest
|
|
|
|
publish-utils: build-core build-utils tag-utils
|
|
component=utils make publish-container
|
|
|
|
publish-web: build-web tag-web
|
|
component=web make publish-container
|
|
|
|
publish-webapp: build-webapp tag-webapp
|
|
component=webapp make publish-container
|
|
|
|
publish-zpush: build-zpush tag-zpush
|
|
component=zpush make publish-container
|
|
|
|
test:
|
|
docker-compose -f $(COMPOSE_FILE) down -v || true
|
|
make build-all
|
|
docker-compose -f $(COMPOSE_FILE) build
|
|
docker-compose -f $(COMPOSE_FILE) up -d
|
|
docker-compose -f $(COMPOSE_FILE) ps
|
|
|
|
test-quick:
|
|
docker-compose -f $(COMPOSE_FILE) stop || true
|
|
docker-compose -f $(COMPOSE_FILE) up -d
|
|
docker-compose -f $(COMPOSE_FILE) ps
|
|
|
|
test-stop:
|
|
docker-compose -f $(COMPOSE_FILE) stop || true
|
|
|
|
default: build-all
|