diff --git a/.github/workflows/publish_ghcr_image.yaml b/.github/workflows/publish_ghcr_image.yaml index 717cde6ad..d2e6958d3 100644 --- a/.github/workflows/publish_ghcr_image.yaml +++ b/.github/workflows/publish_ghcr_image.yaml @@ -1,4 +1,4 @@ -name: Publish multiarch postgres-operator image on ghcr.io +name: Publish multiarch postgres-operator images on ghcr.io env: REGISTRY: ghcr.io @@ -9,6 +9,7 @@ on: push: tags: - '*' + jobs: publish: name: Build, test and push image @@ -30,14 +31,20 @@ jobs: - name: Define image name id: image run: | - IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${GITHUB_REF/refs\/tags\//}" - echo "NAME=${IMAGE,,}" >> $GITHUB_OUTPUT + OPERATOR_IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${GITHUB_REF/refs\/tags\//}" + echo "OPERATOR_IMAGE=$OPERATOR_IMAGE" >> $GITHUB_OUTPUT - - name: Define image name + - name: Define UI image name id: image_ui run: | - IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME_UI }}:${GITHUB_REF/refs\/tags\//}" - echo "NAME=${IMAGE,,}" >> $GITHUB_OUTPUT + UI_IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME_UI }}:${GITHUB_REF/refs\/tags\//}" + echo "UI_IMAGE=$UI_IMAGE" >> $GITHUB_OUTPUT + + - name: Define logical backup image name + id: image_lb + run: | + BACKUP_IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/logical-backup:${GITHUB_REF_NAME}" + echo "BACKUP_IMAGE=$BACKUP_IMAGE" >> $GITHUB_OUTPUT - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -52,23 +59,30 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Build and push multiarch image to ghcr + - name: Build and push multiarch operator image to ghcr uses: docker/build-push-action@v3 with: context: . file: docker/Dockerfile push: true build-args: BASE_IMAGE=alpine:3.15 - tags: "${{ steps.image.outputs.NAME }}" + tags: "${{ steps.image.outputs.OPERATOR_IMAGE }}" platforms: linux/amd64,linux/arm64 - - name: Build and push multiarch image to ghcr for UI + - name: Build and push multiarch ui image to ghcr uses: docker/build-push-action@v3 with: - context: ${{ github.workspace }}/ui - file: ${{ github.workspace }}/ui/Dockerfile + context: ui push: true build-args: BASE_IMAGE=alpine:3.15 - tags: "${{ steps.image_ui.outputs.NAME }}" + tags: "${{ steps.image_ui.outputs.UI_IMAGE }}" platforms: linux/amd64,linux/arm64 + - name: Build and push multiarch logical-backup image to ghcr + uses: docker/build-push-action@v3 + with: + context: docker/logical-backup + push: true + build-args: BASE_IMAGE=ubuntu:22.04 + tags: "${{ steps.image_lb.outputs.BACKUP_IMAGE }}" + platforms: linux/amd64,linux/arm64 diff --git a/docker/logical-backup/Dockerfile b/docker/logical-backup/Dockerfile index 77311d871..8465c3012 100644 --- a/docker/logical-backup/Dockerfile +++ b/docker/logical-backup/Dockerfile @@ -1,4 +1,5 @@ -FROM registry.opensource.zalan.do/library/ubuntu-22.04:latest +ARG BASE_IMAGE=registry.opensource.zalan.do/library/ubuntu-22.04:latest +FROM ${BASE_IMAGE} LABEL maintainer="Team ACID @ Zalando " SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/ui/Dockerfile b/ui/Dockerfile index 04bfe5321..30c2d77fa 100644 --- a/ui/Dockerfile +++ b/ui/Dockerfile @@ -1,5 +1,16 @@ ARG BASE_IMAGE=registry.opensource.zalan.do/library/alpine-3.15:latest -FROM ${BASE_IMAGE} +ARG NODE_IMAGE=node:14.21.2-alpine + +FROM $NODE_IMAGE AS build + +COPY . /workdir +WORKDIR /workdir/app + +RUN npm install &&\ + npm run build + +FROM $BASE_IMAGE + LABEL maintainer="Team ACID @ Zalando " EXPOSE 8081 @@ -34,7 +45,7 @@ COPY start_server.sh / RUN pip3 install -r /requirements.txt COPY operator_ui /operator_ui - +COPY --from=build /workdir/operator_ui/static/build /operator_ui/static/build ARG VERSION=dev RUN sed -i "s/__version__ = .*/__version__ = '${VERSION}'/" /operator_ui/__init__.py