Separate dockerfiles for more efficient build
Change-Id: I526f4317ada36d1ac24d904d3ffb873611c0225c
diff --git a/Makefile b/Makefile
index 11e9f1d..3d7f3bf 100644
--- a/Makefile
+++ b/Makefile
@@ -15,15 +15,18 @@
#
VERSION ?= $(shell cat ./VERSION)
-ENB_NAME ?= lte-softmodem
+BASE_NAME ?= oai-base
UE_NAME ?= lte-uesoftmodem
+ENB_NAME ?= lte-softmodem
-DOCKER_TAG ?= ${VERSION}
+# Tag is fixed to OAI release version, v1.0.0, regardless of VERSION file
+DOCKER_TAG ?= 1.0.0
DOCKER_REGISTRY ?=
DOCKER_REPOSITORY ?=
DOCKER_BUILD_ARGS ?=
-ENB_IMAGENAME ?= ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}${ENB_NAME}:${DOCKER_TAG}
+BASE_IMAGENAME ?= ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}${BASE_NAME}:${DOCKER_TAG}
UE_IMAGENAME ?= ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}${UE_NAME}:${DOCKER_TAG}
+ENB_IMAGENAME ?= ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}${ENB_NAME}:${DOCKER_TAG}
## Docker labels. Only set ref and commit date if committed
DOCKER_LABEL_VCS_URL ?= $(shell git remote get-url $(shell git remote))
@@ -34,8 +37,9 @@
# https://docs.docker.com/engine/reference/commandline/build/#specifying-target-build-stage---target
docker-build:
docker build $(DOCKER_BUILD_ARGS) \
- --target ${ENB_NAME} \
- --tag ${ENB_IMAGENAME} \
+ --target ${BASE_NAME} \
+ --tag ${BASE_IMAGENAME} \
+ --file Dockerfile.base \
--build-arg org_label_schema_version="${VERSION}" \
--build-arg org_label_schema_vcs_url="${DOCKER_LABEL_VCS_URL}" \
--build-arg org_label_schema_vcs_ref="${DOCKER_LABEL_VCS_REF}" \
@@ -45,6 +49,19 @@
docker build $(DOCKER_BUILD_ARGS) \
--target ${UE_NAME} \
--tag ${UE_IMAGENAME} \
+ --file Dockerfile.ue \
+ --build-arg build_base=${BASE_IMAGENAME} \
+ --build-arg org_label_schema_version="${VERSION}" \
+ --build-arg org_label_schema_vcs_url="${DOCKER_LABEL_VCS_URL}" \
+ --build-arg org_label_schema_vcs_ref="${DOCKER_LABEL_VCS_REF}" \
+ --build-arg org_label_schema_build_date="${DOCKER_LABEL_BUILD_DATE}" \
+ --build-arg org_opencord_vcs_commit_date="${DOCKER_LABEL_COMMIT_DATE}" \
+ .
+ docker build $(DOCKER_BUILD_ARGS) \
+ --target ${ENB_NAME} \
+ --tag ${ENB_IMAGENAME} \
+ --file Dockerfile.enb \
+ --build-arg build_base=${BASE_IMAGENAME} \
--build-arg org_label_schema_version="${VERSION}" \
--build-arg org_label_schema_vcs_url="${DOCKER_LABEL_VCS_URL}" \
--build-arg org_label_schema_vcs_ref="${DOCKER_LABEL_VCS_REF}" \
@@ -53,8 +70,9 @@
.
docker-push:
- docker push ${ENB_IMAGENAME}
+ docker push ${BASE_IMAGENAME}
docker push ${UE_IMAGENAME}
+ docker push ${ENB_IMAGENAME}
test: docker-build