Prechádzať zdrojové kódy

Merge pull request #6044 from zmstone/use-profile-name-as-default-docker-image-tag

Use profile name as default docker image tag
Zaiming (Stone) Shi 4 rokov pred
rodič
commit
818bde1820
3 zmenil súbory, kde vykonal 43 pridanie a 25 odobranie
  1. 30 14
      .github/workflows/run_automate_tests.yaml
  2. 1 1
      deploy/docker/Dockerfile
  3. 12 10
      docker.mk

+ 30 - 14
.github/workflows/run_automate_tests.yaml

@@ -1,5 +1,5 @@
 name: Integration Test Suites
 name: Integration Test Suites
-  
+
 on:
 on:
   push:
   push:
     tags:
     tags:
@@ -12,18 +12,30 @@ jobs:
   build:
   build:
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
     outputs:
     outputs:
+      imgname: ${{ steps.build_docker.outputs.imgname}}
       version: ${{ steps.build_docker.outputs.version}}
       version: ${{ steps.build_docker.outputs.version}}
     steps:
     steps:
     - uses: actions/checkout@v2
     - uses: actions/checkout@v2
     - name: build docker
     - name: build docker
       id: build_docker
       id: build_docker
       run: |
       run: |
+        if [ -f EMQX_ENTERPRISE ]; then
+          echo "https://ci%40emqx.io:${{ secrets.CI_GIT_TOKEN }}@github.com" > $HOME/.git-credentials
+          git config --global credential.helper store
+          echo "${{ secrets.CI_GIT_TOKEN }}" >> scripts/git-token
+          make deps-emqx-ee
+        fi
         make docker
         make docker
         echo "::set-output name=version::$(./pkg-vsn.sh)"
         echo "::set-output name=version::$(./pkg-vsn.sh)"
+        if [ -f EMQX_ENTERPRISE ]; then
+          echo "::set-output name=imgname::emqx-ee"
+        else
+          echo "::set-output name=imgname::emqx"
+        fi
     - uses: actions/upload-artifact@v2
     - uses: actions/upload-artifact@v2
       with:
       with:
         name: emqx-docker-image-zip
         name: emqx-docker-image-zip
-        path: _packages/emqx/emqx-docker-${{ steps.build_docker.outputs.version }}.zip
+        path: _packages/${{ steps.build_docker.outputs.imgname }}/${{ steps.build_docker.outputs.imgname }}-docker-${{ steps.build_docker.outputs.version }}.zip
 
 
   webhook:
   webhook:
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
@@ -43,14 +55,15 @@ jobs:
         path: /tmp
         path: /tmp
     - name: load docker image
     - name: load docker image
       env:
       env:
+        imgname: ${{ needs.build.outputs.imgname}}
         version: ${{ needs.build.outputs.version }}
         version: ${{ needs.build.outputs.version }}
       run: |
       run: |
-        unzip -q /tmp/emqx-docker-${version}.zip -d /tmp
-        docker load < /tmp/emqx-docker-${version}
+        unzip -q /tmp/${imgname}-docker-${version}.zip -d /tmp
+        docker load < /tmp/${imgname}-docker-${version}
     - name: docker compose up
     - name: docker compose up
       timeout-minutes: 5
       timeout-minutes: 5
       env:
       env:
-        TARGET: emqx/emqx
+        TARGET: emqx/${{ needs.build.outputs.imgname }}
         EMQX_TAG: ${{ needs.build.outputs.version }}
         EMQX_TAG: ${{ needs.build.outputs.version }}
       run: |
       run: |
         docker-compose \
         docker-compose \
@@ -142,14 +155,15 @@ jobs:
         path: /tmp
         path: /tmp
     - name: load docker image
     - name: load docker image
       env:
       env:
+        imgname: ${{ needs.build.outputs.imgname }}
         version: ${{ needs.build.outputs.version }}
         version: ${{ needs.build.outputs.version }}
       run: |
       run: |
-        unzip -q /tmp/emqx-docker-${version}.zip -d /tmp
-        docker load < /tmp/emqx-docker-${version}
+        unzip -q /tmp/${imgname}-docker-${version}.zip -d /tmp
+        docker load < /tmp/${imgname}-docker-${version}
     - name: docker compose up
     - name: docker compose up
       timeout-minutes: 5
       timeout-minutes: 5
       env:
       env:
-        TARGET: emqx/emqx
+        TARGET: emqx/${{ needs.build.outputs.imgname }}
         EMQX_TAG: ${{ needs.build.outputs.version }}
         EMQX_TAG: ${{ needs.build.outputs.version }}
         MYSQL_TAG: ${{ matrix.mysql_tag }}
         MYSQL_TAG: ${{ matrix.mysql_tag }}
       run: |
       run: |
@@ -248,14 +262,15 @@ jobs:
         path: /tmp
         path: /tmp
     - name: load docker image
     - name: load docker image
       env:
       env:
+        imgname: ${{ needs.build.outputs.imgname }}
         version: ${{ needs.build.outputs.version }}
         version: ${{ needs.build.outputs.version }}
       run: |
       run: |
-        unzip -q /tmp/emqx-docker-${version}.zip -d /tmp
-        docker load < /tmp/emqx-docker-${version}
+        unzip -q /tmp/${imgname}-docker-${version}.zip -d /tmp
+        docker load < /tmp/${imgname}-docker-${version}
     - name: docker compose up
     - name: docker compose up
       timeout-minutes: 5
       timeout-minutes: 5
       env:
       env:
-        TARGET: emqx/emqx
+        TARGET: emqx/${{ needs.build.outputs.imgname }}
         EMQX_TAG: ${{ needs.build.outputs.version }}
         EMQX_TAG: ${{ needs.build.outputs.version }}
         PGSQL_TAG: ${{ matrix.pgsql_tag }}
         PGSQL_TAG: ${{ matrix.pgsql_tag }}
       run: |
       run: |
@@ -343,14 +358,15 @@ jobs:
         path: /tmp
         path: /tmp
     - name: load docker image
     - name: load docker image
       env:
       env:
+        imgname: ${{ needs.build.outputs.imgname }}
         version: ${{ needs.build.outputs.version }}
         version: ${{ needs.build.outputs.version }}
       run: |
       run: |
-        unzip -q /tmp/emqx-docker-${version}.zip -d /tmp
-        docker load < /tmp/emqx-docker-${version}
+        unzip -q /tmp/${imgname}-docker-${version}.zip -d /tmp
+        docker load < /tmp/${imgname}-docker-${version}
     - name: docker compose up
     - name: docker compose up
       timeout-minutes: 5
       timeout-minutes: 5
       env:
       env:
-        TARGET: emqx/emqx
+        TARGET: emqx/${{ needs.build.outputs.imgname }}
         EMQX_TAG: ${{ needs.build.outputs.version }}
         EMQX_TAG: ${{ needs.build.outputs.version }}
         MYSQL_TAG: 8
         MYSQL_TAG: 8
       run: |
       run: |

+ 1 - 1
deploy/docker/Dockerfile

@@ -41,7 +41,7 @@ LABEL org.label-schema.docker.dockerfile="Dockerfile" \
     org.label-schema.url="https://emqx.io" \
     org.label-schema.url="https://emqx.io" \
     org.label-schema.vcs-type="Git" \
     org.label-schema.vcs-type="Git" \
     org.label-schema.vcs-url="https://github.com/emqx/emqx" \
     org.label-schema.vcs-url="https://github.com/emqx/emqx" \
-    maintainer="Raymond M Mouthaan <raymondmmouthaan@gmail.com>, Huang Rui <vowstar@gmail.com>, EMQ X Team <support@emqx.io>"
+    maintainer="EMQ X Team <support@emqx.io>"
 
 
 ARG QEMU_ARCH=x86_64
 ARG QEMU_ARCH=x86_64
 ARG EMQX_NAME=emqx
 ARG EMQX_NAME=emqx

+ 12 - 10
docker.mk

@@ -1,8 +1,10 @@
 #!/usr/bin/make -f
 #!/usr/bin/make -f
 # -*- makefile -*-
 # -*- makefile -*-
 
 
-## default globals
-TARGET ?= emqx/emqx
+## default globals.
+## when built with `make docker` command the default profile is either emqx or emqx-ee (for enterprise)
+## or the TARGET varialbe can be set beforehand to force a different name
+TARGET ?= emqx/$(PROFILE)
 QEMU_ARCH ?= x86_64
 QEMU_ARCH ?= x86_64
 ARCH ?= amd64
 ARCH ?= amd64
 QEMU_VERSION ?= v5.0.0-2
 QEMU_VERSION ?= v5.0.0-2
@@ -37,7 +39,7 @@ docker-prepare:
 	# enable experimental to use docker manifest command
 	# enable experimental to use docker manifest command
 	@echo '{ "experimental": "enabled" }' | tee $$HOME/.docker/config.json
 	@echo '{ "experimental": "enabled" }' | tee $$HOME/.docker/config.json
 	# enable experimental
 	# enable experimental
-	@echo '{ "experimental": true, "storage-driver": "overlay2", "max-concurrent-downloads": 50, "max-concurrent-uploads": 50 }' | tee /etc/docker/daemon.json 
+	@echo '{ "experimental": true, "storage-driver": "overlay2", "max-concurrent-downloads": 50, "max-concurrent-uploads": 50 }' | tee /etc/docker/daemon.json
 	@service docker restart
 	@service docker restart
 
 
 .PHONY: docker-build
 .PHONY: docker-build
@@ -85,7 +87,7 @@ docker-tag:
 
 
 .PHONY: docker-save
 .PHONY: docker-save
 docker-save:
 docker-save:
-	@echo "DOCKER SAVE: Save Docker image." 
+	@echo "DOCKER SAVE: Save Docker image."
 
 
 	@mkdir -p _packages/$(EMQX_NAME)
 	@mkdir -p _packages/$(EMQX_NAME)
 
 
@@ -94,7 +96,7 @@ docker-save:
 		zip -r -m $(EMQX_NAME)-docker-$(PKG_VSN).zip $(EMQX_NAME)-docker-$(PKG_VSN); \
 		zip -r -m $(EMQX_NAME)-docker-$(PKG_VSN).zip $(EMQX_NAME)-docker-$(PKG_VSN); \
 		mv ./$(EMQX_NAME)-docker-$(PKG_VSN).zip _packages/$(EMQX_NAME)/$(EMQX_NAME)-docker-$(PKG_VSN).zip; \
 		mv ./$(EMQX_NAME)-docker-$(PKG_VSN).zip _packages/$(EMQX_NAME)/$(EMQX_NAME)-docker-$(PKG_VSN).zip; \
 	fi
 	fi
-	
+
 	@for arch in $(ARCH_LIST); do \
 	@for arch in $(ARCH_LIST); do \
 		if [ -n  "$$(docker images -q  $(TARGET):$(PKG_VSN)-$(OS)-$${arch})" ]; then \
 		if [ -n  "$$(docker images -q  $(TARGET):$(PKG_VSN)-$(OS)-$${arch})" ]; then \
 			docker save  $(TARGET):$(PKG_VSN)-$(OS)-$${arch} > $(EMQX_NAME)-docker-$(PKG_VSN)-$(OS)-$${arch}; \
 			docker save  $(TARGET):$(PKG_VSN)-$(OS)-$${arch} > $(EMQX_NAME)-docker-$(PKG_VSN)-$(OS)-$${arch}; \
@@ -105,8 +107,8 @@ docker-save:
 
 
 .PHONY: docker-push
 .PHONY: docker-push
 docker-push:
 docker-push:
-	@echo "DOCKER PUSH: Push Docker image."; 
-	@echo "DOCKER PUSH: pushing - $(TARGET):$(PKG_VSN)."; 
+	@echo "DOCKER PUSH: Push Docker image.";
+	@echo "DOCKER PUSH: pushing - $(TARGET):$(PKG_VSN).";
 
 
 	@if [ -n "$$(docker images -q $(TARGET):$(PKG_VSN))" ]; then \
 	@if [ -n "$$(docker images -q $(TARGET):$(PKG_VSN))" ]; then \
 		docker push $(TARGET):$(PKG_VSN); \
 		docker push $(TARGET):$(PKG_VSN); \
@@ -131,7 +133,7 @@ docker-manifest-list:
 		fi; \
 		fi; \
 	done; \
 	done; \
 	eval $$version; \
 	eval $$version; \
-	eval $$latest; 
+	eval $$latest;
 
 
 	for arch in $(ARCH_LIST); do \
 	for arch in $(ARCH_LIST); do \
 		case $${arch} in \
 		case $${arch} in \
@@ -166,10 +168,10 @@ docker-manifest-list:
 				fi; \
 				fi; \
 				;; \
 				;; \
 		esac; \
 		esac; \
-	done; 
+	done;
 
 
 	docker manifest inspect $(TARGET):$(PKG_VSN)
 	docker manifest inspect $(TARGET):$(PKG_VSN)
-	docker manifest push $(TARGET):$(PKG_VSN); 
+	docker manifest push $(TARGET):$(PKG_VSN);
 	docker manifest inspect $(TARGET):latest
 	docker manifest inspect $(TARGET):latest
 	docker manifest push $(TARGET):latest;
 	docker manifest push $(TARGET):latest;