Skip to content

Update Dockerfile

Update Dockerfile #7

Workflow file for this run

name: Docker Image
on:
workflow_dispatch:
push:
tags:
- '**'
branches:
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-22.04
steps:
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
build-mount-path: /home/runner/work/_temp/docker
root-reserve-mb: 10240
remove-dotnet: true
remove-android: true
remove-haskell: true
remove-codeql: true
remove-docker-images: true
- name: Move Docker data root to work directory
run: |
sudo systemctl stop docker
sudo sh -c 'printf "{\n \"exec-opts\": [\n \"native.cgroupdriver=cgroupfs\"\n ],\n \"cgroup-parent\": \"/actions_job\",\n \"data-root\": \"/home/runner/work/_temp/docker\"\n}\n" > /etc/docker/daemon.json'
sudo systemctl start docker
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
install: true
- name: Set up QEMU
id: qemu
uses: docker/setup-qemu-action@v3
with:
image: tonistiigi/binfmt:master
- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v5
with:
images: streamdal/protoc
tags: |
type=raw,value=development,enable=${{ github.ref == 'refs/heads/main' }}
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=ref,event=tag
flavor: |
latest=auto
- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Load dependency versions
run: cat deps.list >> $GITHUB_ENV
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
push: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') }}
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
platforms: linux/amd64,linux/arm64
build-args: |
ALPINE_IMAGE_VERSION=${{ env.ALPINE_IMAGE_VERSION }}
DART_IMAGE_VERSION=${{ env.DART_IMAGE_VERSION }}
GO_IMAGE_VERSION=${{ env.GO_IMAGE_VERSION }}
GOOGLE_API_VERSION=${{ env.GOOGLE_API_VERSION }}
GRPC_GATEWAY_VERSION=${{ env.GRPC_GATEWAY_VERSION }}
GRPC_RUST_VERSION=${{ env.GRPC_RUST_VERSION }}
GRPC_SWIFT_VERSION=${{ env.GRPC_SWIFT_VERSION }}
GRPC_WEB_VERSION=${{ env.GRPC_WEB_VERSION }}
NODE_IMAGE_VERSION=${{ env.NODE_IMAGE_VERSION }}
PROTOC_GEN_DART_VERSION=${{ env.PROTOC_GEN_DART_VERSION }}
PROTOC_GEN_DOC_VERSION=${{ env.PROTOC_GEN_DOC_VERSION }}
PROTOC_GEN_GO_GRPC_VERSION=${{ env.PROTOC_GEN_GO_GRPC_VERSION }}
PROTOC_GEN_GO_VERSION=${{ env.PROTOC_GEN_GO_VERSION }}
PROTOC_GEN_GOGO_VERSION=${{ env.PROTOC_GEN_GOGO_VERSION }}
PROTOC_GEN_GORM_VERSION=${{ env.PROTOC_GEN_GORM_VERSION }}
PROTOC_GEN_GOTEMPLATE_VERSION=${{ env.PROTOC_GEN_GOTEMPLATE_VERSION }}
PROTOC_GEN_GOVALIDATORS_VERSION=${{ env.PROTOC_GEN_GOVALIDATORS_VERSION }}
PROTOC_GEN_GQL_VERSION=${{ env.PROTOC_GEN_GQL_VERSION }}
PROTOC_GEN_JSONSCHEMA_VERSION=${{ env.PROTOC_GEN_JSONSCHEMA_VERSION }}
PROTOC_GEN_LINT_VERSION=${{ env.PROTOC_GEN_LINT_VERSION }}
PROTOC_GEN_NANOPB_VERSION=${{ env.PROTOC_GEN_NANOPB_VERSION }}
PROTOC_GEN_RUST_VERSION=${{ env.PROTOC_GEN_RUST_VERSION }}
PROTOC_GEN_SCALA_VERSION=${{ env.PROTOC_GEN_SCALA_VERSION }}
PROTOC_GEN_TS_VERSION=${{ env.PROTOC_GEN_TS_VERSION }}
PROTOC_GEN_VALIDATE_VERSION=${{ env.PROTOC_GEN_VALIDATE_VERSION }}
RUST_IMAGE_VERSION=${{ env.RUST_IMAGE_VERSION }}
SCALA_SBT_IMAGE_VERSION=${{ env.SCALA_SBT_IMAGE_VERSION }}
SWIFT_IMAGE_VERSION=${{ env.SWIFT_IMAGE_VERSION }}
UPX_VERSION=${{ env.UPX_VERSION }}
XX_IMAGE_VERSION=${{ env.XX_IMAGE_VERSION }}