2023-06-30 07:41:07 +00:00
|
|
|
name: build docker runtime images
|
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
branches:
|
|
|
|
- 'hotfix/v**'
|
|
|
|
- 'release/v**'
|
|
|
|
- 'feature/docker-dev'
|
|
|
|
paths:
|
|
|
|
- '/build/install/docker/Dockerfile.runtime'
|
|
|
|
- '.github/workflows/build-runtime-images.yml'
|
|
|
|
- 'config/*'
|
|
|
|
- '/build/install/docker/config/nginx/**'
|
|
|
|
env:
|
|
|
|
REPOSITORY_NAME: "onlyoffice"
|
|
|
|
TAG: "v1.0.0"
|
|
|
|
DOTNET_RUNTIME_IMAGE: "4testing-docspace-dotnet-runtime"
|
|
|
|
NODEJS_RUNTIME_IMAGE: "4testing-docspace-nodejs-runtime"
|
|
|
|
PROXY_RUNTIME_IMAGE: "4testing-docspace-proxy-runtime"
|
2023-06-30 08:09:39 +00:00
|
|
|
DOCKERFILE_BUILD: "build/install/docker/Dockerfile.runtime"
|
2023-06-30 07:41:07 +00:00
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
platform:
|
|
|
|
- linux/amd64
|
|
|
|
- linux/arm64
|
|
|
|
steps:
|
|
|
|
-
|
|
|
|
name: Checkout
|
|
|
|
uses: actions/checkout@v2
|
|
|
|
-
|
|
|
|
name: Set up QEMU
|
|
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
-
|
|
|
|
name: Set up Docker Buildx
|
|
|
|
id: buildx
|
|
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
-
|
|
|
|
name: Login to DockerHub
|
|
|
|
uses: docker/login-action@v2
|
|
|
|
with:
|
|
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
-
|
|
|
|
name: Build ${{ env.REPOSITORY_NAME }}/${{ env.DOTNET_RUNTIME_IMAGE }}
|
|
|
|
uses: docker/build-push-action@v4
|
|
|
|
id: build-dotnetrun
|
|
|
|
with:
|
|
|
|
context: .
|
|
|
|
file: ${{ env.DOCKERFILE_BUILD }}
|
|
|
|
platforms: ${{ matrix.platform}}
|
|
|
|
target: dotnetrun
|
|
|
|
outputs: type=image,name=${{ env.REPOSITORY_NAME }}/${{ env.DOTNET_RUNTIME_IMAGE }},push-by-digest=true,name-canonical=true,push=true
|
|
|
|
-
|
|
|
|
name: Build ${{ env.REPOSITORY_NAME }}/${{ env.NODEJS_RUNTIME_IMAGE }}
|
|
|
|
uses: docker/build-push-action@v4
|
|
|
|
id: build-noderun
|
|
|
|
with:
|
|
|
|
context: .
|
|
|
|
file: ${{ env.DOCKERFILE_BUILD }}
|
|
|
|
platforms: ${{ matrix.platform}}
|
|
|
|
target: noderun
|
|
|
|
outputs: type=image,name=${{ env.REPOSITORY_NAME }}/${{ env.NODEJS_RUNTIME_IMAGE }},push-by-digest=true,name-canonical=true,push=true
|
|
|
|
-
|
|
|
|
name: Build ${{ env.REPOSITORY_NAME }}/${{ env.PROXY_RUNTIME_IMAGE }}
|
|
|
|
uses: docker/build-push-action@v4
|
|
|
|
id: build-proxy
|
|
|
|
with:
|
|
|
|
context: .
|
|
|
|
file: ${{ env.DOCKERFILE_BUILD }}
|
|
|
|
platforms: ${{ matrix.platform}}
|
|
|
|
target: proxy
|
|
|
|
outputs: type=image,name=${{ env.REPOSITORY_NAME }}/${{ env.PROXY_RUNTIME_IMAGE }},push-by-digest=true,name-canonical=true,push=true
|
|
|
|
-
|
|
|
|
name: Export digest
|
|
|
|
run: |
|
|
|
|
mkdir -p /tmp/digests/${{ env.DOTNET_RUNTIME_IMAGE }}
|
|
|
|
digest="${{ steps.build-dotnetrun.outputs.digest }}"
|
|
|
|
touch "/tmp/digests/${{ env.DOTNET_RUNTIME_IMAGE }}/${digest#sha256:}"
|
|
|
|
|
|
|
|
mkdir -p /tmp/digests/${{ env.NODEJS_RUNTIME_IMAGE }}
|
|
|
|
digest="${{ steps.build-noderun.outputs.digest }}"
|
|
|
|
touch "/tmp/digests/${{ env.NODEJS_RUNTIME_IMAGE }}/${digest#sha256:}"
|
|
|
|
|
|
|
|
mkdir -p /tmp/digests/${{ env.PROXY_RUNTIME_IMAGE }}
|
|
|
|
digest="${{ steps.build-proxy.outputs.digest }}"
|
|
|
|
touch "/tmp/digests/${{ env.PROXY_RUNTIME_IMAGE }}/${digest#sha256:}"
|
|
|
|
-
|
|
|
|
name: Upload digest
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: digests
|
|
|
|
path: /tmp/digests/*
|
|
|
|
if-no-files-found: error
|
|
|
|
retention-days: 1
|
|
|
|
merge:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
needs:
|
2023-06-30 07:43:11 +00:00
|
|
|
- build
|
2023-06-30 07:41:07 +00:00
|
|
|
steps:
|
|
|
|
-
|
|
|
|
name: Download digests
|
|
|
|
uses: actions/download-artifact@v3
|
|
|
|
with:
|
|
|
|
name: digests
|
|
|
|
path: /tmp/digests
|
|
|
|
-
|
|
|
|
name: Set up Docker Buildx
|
|
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
-
|
|
|
|
name: Login to Docker Hub
|
|
|
|
uses: docker/login-action@v2
|
|
|
|
with:
|
|
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
-
|
|
|
|
name: Create ${{ env.DOTNET_RUNTIME_IMAGE }} list and push
|
|
|
|
working-directory: /tmp/digests/${{ env.DOTNET_RUNTIME_IMAGE }}
|
|
|
|
run: |
|
|
|
|
docker buildx imagetools create -t ${{ env.REPOSITORY_NAME }}/${{ env.DOTNET_RUNTIME_IMAGE }}:${{ env.TAG }} \
|
|
|
|
$(printf '${{ env.REPOSITORY_NAME }}/${{ env.DOTNET_RUNTIME_IMAGE }}@sha256:%s ' *)
|
|
|
|
-
|
|
|
|
name: Create ${{ env.NODEJS_RUNTIME_IMAGE }} list and push
|
|
|
|
working-directory: /tmp/digests/${{ env.NODEJS_RUNTIME_IMAGE }}
|
|
|
|
run: |
|
|
|
|
docker buildx imagetools create -t ${{ env.REPOSITORY_NAME }}/${{ env.NODEJS_RUNTIME_IMAGE }}:${{ env.TAG }} \
|
|
|
|
$(printf '${{ env.REPOSITORY_NAME }}/${{ env.NODEJS_RUNTIME_IMAGE }}@sha256:%s ' *)
|
|
|
|
-
|
|
|
|
name: Create ${{ env.PROXY_RUNTIME_IMAGE }} list and push
|
|
|
|
working-directory: /tmp/digests/${{ env.PROXY_RUNTIME_IMAGE }}
|
|
|
|
run: |
|
|
|
|
docker buildx imagetools create -t ${{ env.REPOSITORY_NAME }}/${{ env.PROXY_RUNTIME_IMAGE }}:${{ env.TAG }} \
|
|
|
|
$(printf '${{ env.REPOSITORY_NAME }}/${{ env.PROXY_RUNTIME_IMAGE }}@sha256:%s ' *)
|