mirror of
https://github.com/outbackdingo/openlan-cgw.git
synced 2026-01-27 18:19:52 +00:00
This change makes it possibly to fire make all / make run without any additional prerequisites required. It instructs Makefile to launch docker compose for thirdparty services, as well as instructs CGW container to communicate with newly created containers. Also generates self-signed certs, in case if these are missing. - Tweak docker-compose files for thirdparty services to resign in a cgw-dedicated network, and use hostnames where needed; - Change CGW app default network to cgw-dedicated network; - Tweak PGSQL scripts to create tables in CGW DB, as well as change ownership to them. Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
71 lines
2.5 KiB
Makefile
71 lines
2.5 KiB
Makefile
.ONESHELL:
|
|
SHELL = /bin/bash
|
|
.SHELLFLAGS += -e
|
|
|
|
CGW_IMG_ID := openlan-cgw-img
|
|
CGW_IMG_TAG := $(shell \
|
|
if [[ `git status --porcelain --untracked-files=no` ]]; then \
|
|
echo "`git rev-parse --short HEAD`-dirty"; \
|
|
else \
|
|
echo "`git rev-parse --short HEAD`"; \
|
|
fi)
|
|
CGW_IMG_CONTAINER_NAME := "openlan_cgw"
|
|
|
|
CGW_BUILD_ENV_IMG_ID := openlan-cgw-build-env
|
|
CGW_BUILD_ENV_IMG_TAG := $(shell cat Dockerfile | sha1sum | awk '{print substr($$1,0,11);}')
|
|
|
|
CGW_BUILD_ENV_IMG_CONTAINER_NAME := "cgw_build_env"
|
|
|
|
.PHONY: all cgw-app cgw-build-env-img cgw-img stop clean run run_docker_services
|
|
|
|
all: cgw-build-env-img run_docker_services run
|
|
@echo "uCentral CGW build app (container) done"
|
|
|
|
# Executed inside build-env
|
|
cgw-app:
|
|
cargo build --target x86_64-unknown-linux-gnu --release
|
|
|
|
# Builds build-env image itself
|
|
cgw-build-env-img:
|
|
@echo "Trying to build build-env-img, looking if exists.."
|
|
@docker inspect --type=image ${CGW_BUILD_ENV_IMG_ID}:${CGW_BUILD_ENV_IMG_TAG} >/dev/null 2>&1 || \
|
|
(echo "build-env-img doesn't exist, building..." && \
|
|
docker build --file Dockerfile \
|
|
--tag ${CGW_BUILD_ENV_IMG_ID}:${CGW_BUILD_ENV_IMG_TAG} \
|
|
--target builder \
|
|
.)
|
|
@echo "build-env-img build done"
|
|
|
|
# Generates both build-env img as well as CGW result docker img
|
|
# Uses local FS / project dir for storing cache for build etc
|
|
cgw-img: stop cgw-build-env-img
|
|
@docker run -it --name ${CGW_BUILD_ENV_IMG_CONTAINER_NAME} --network=host \
|
|
${CGW_BUILD_ENV_IMG_ID}:${CGW_BUILD_ENV_IMG_TAG}
|
|
@docker build --file Dockerfile \
|
|
--build-arg="CGW_CONTAINER_BUILD_REV=${CGW_IMG_TAG}" \
|
|
--tag ${CGW_IMG_ID}:${CGW_IMG_TAG} \
|
|
--target cgw-img \
|
|
.
|
|
@echo Docker build done;
|
|
|
|
stop:
|
|
@echo "Stopping / removing container ${CGW_IMG_CONTAINER_NAME}"
|
|
@docker stop ${CGW_IMG_CONTAINER_NAME} > /dev/null 2>&1 || true;
|
|
@docker container rm ${CGW_IMG_CONTAINER_NAME} > /dev/null 2>&1 || true;
|
|
@echo "Stopping / removing container ${CGW_BUILD_ENV_IMG_CONTAINER_NAME}"
|
|
@docker stop ${CGW_BUILD_ENV_IMG_CONTAINER_NAME} > /dev/null 2>&1 || true;
|
|
@docker container rm ${CGW_BUILD_ENV_IMG_CONTAINER_NAME} > /dev/null 2>&1 || true;
|
|
|
|
clean: stop
|
|
@echo Cleaning build env and artifacts...
|
|
@docker rmi ${CGW_IMG_ID}:${CGW_IMG_TAG} >/dev/null 2>&1 || true
|
|
@docker rmi ${CGW_BUILD_ENV_IMG_ID}:${CGW_BUILD_ENV_IMG_TAG} >/dev/null 2>&1 || true
|
|
@echo Done!
|
|
|
|
run: stop cgw-img run_docker_services
|
|
@./run_cgw.sh "${CGW_IMG_ID}:${CGW_IMG_TAG}" ${CGW_IMG_CONTAINER_NAME}
|
|
|
|
run_docker_services:
|
|
@cd ./utils/docker/ && docker compose up -d
|
|
|