mirror of
https://github.com/Neur0toxine/docker-node-alpine-git-gyp.git
synced 2024-11-24 13:26:03 +03:00
feat: enable multi arch building
This commit is contained in:
parent
7855681c3a
commit
1374ae6183
76
.github/workflows/buildx.yml
vendored
Normal file
76
.github/workflows/buildx.yml
vendored
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
name: buildx
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '37 06 * * *'
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
buildx:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
docker-file:
|
||||||
|
- path: 10
|
||||||
|
tags: 10,dubnium
|
||||||
|
platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/arm/v7,linux/arm/v6
|
||||||
|
- path: 12
|
||||||
|
tags: 12,erbium,latest
|
||||||
|
platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/arm/v7,linux/arm/v6
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Prepare
|
||||||
|
id: prepare
|
||||||
|
run: |
|
||||||
|
DOCKER_IMAGE=timbru31/node-alpine-git
|
||||||
|
|
||||||
|
TAGZ=$(echo ${{ matrix.docker-file.tags }} | tr "," "\n")
|
||||||
|
VERSION=${TAGZ[0]}
|
||||||
|
|
||||||
|
for tag in $TAGZ
|
||||||
|
do
|
||||||
|
TAGS="${TAGS} --tag ${DOCKER_IMAGE}:${tag}"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo ::set-output name=docker_image::${DOCKER_IMAGE}
|
||||||
|
echo ::set-output name=version::${VERSION}
|
||||||
|
echo ::set-output name=buildx_args::--platform ${{ matrix.docker-file.platforms }} \
|
||||||
|
--build-arg REFRESHED_AT=$(date +%Y-%m-%d) \
|
||||||
|
${TAGS} --file ./${{ matrix.docker-file.path }}/Dockerfile ./${{ matrix.docker-file.path }}
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
id: buildx
|
||||||
|
uses: crazy-max/ghaction-docker-buildx@v2
|
||||||
|
|
||||||
|
- name: Available platforms
|
||||||
|
run: echo ${{ steps.buildx.outputs.platforms }}
|
||||||
|
|
||||||
|
- name: Docker Buildx (build)
|
||||||
|
run: |
|
||||||
|
docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }}
|
||||||
|
|
||||||
|
- name: Docker Login
|
||||||
|
if: success() && github.event_name != 'pull_request'
|
||||||
|
env:
|
||||||
|
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
run: |
|
||||||
|
echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin
|
||||||
|
|
||||||
|
- name: Docker Buildx (push)
|
||||||
|
if: success() && github.event_name != 'pull_request'
|
||||||
|
run: |
|
||||||
|
docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }}
|
||||||
|
|
||||||
|
- name: Docker Check Manifest
|
||||||
|
if: always() && github.event_name != 'pull_request'
|
||||||
|
run: |
|
||||||
|
docker run --rm mplatform/mquery ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }}
|
||||||
|
|
||||||
|
- name: Clear
|
||||||
|
if: always() && github.event_name != 'pull_request'
|
||||||
|
run: |
|
||||||
|
rm -f ${HOME}/.docker/config.json
|
@ -1,5 +1,5 @@
|
|||||||
FROM node:dubnium-alpine@sha256:2c2645270fb31946300e7e0c3f69f01d556f8fc4484d1d3de6cac412e1714ebe
|
FROM node:dubnium-alpine
|
||||||
LABEL maintainer "Tim Brust <tim.brust@sinnerschrader.com>"
|
LABEL maintainer "Tim Brust <github@timbrust.de>"
|
||||||
|
|
||||||
ARG REFRESHED_AT
|
ARG REFRESHED_AT
|
||||||
ENV REFRESHED_AT $REFRESHED_AT
|
ENV REFRESHED_AT $REFRESHED_AT
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
FROM node:erbium-alpine@sha256:7d7ad9b819f7064e215aa68a925f22b6a4417598bf017132201f9f1c6f2f0f62
|
FROM node:erbium-alpine
|
||||||
LABEL maintainer "Tim Brust <tim.brust@sinnerschrader.com>"
|
LABEL maintainer "Tim Brust <github@timbrust.de>"
|
||||||
|
|
||||||
ARG REFRESHED_AT
|
ARG REFRESHED_AT
|
||||||
ENV REFRESHED_AT $REFRESHED_AT
|
ENV REFRESHED_AT $REFRESHED_AT
|
||||||
|
11
README.md
11
README.md
@ -14,6 +14,17 @@ A minimal Dockerfile based on Node.js 10 LTS (Dubnium) or Node.js 12 LTS (Erbium
|
|||||||
- Git
|
- Git
|
||||||
- ssh
|
- ssh
|
||||||
|
|
||||||
|
## Available platforms
|
||||||
|
|
||||||
|
These Dockerfiles leverage the new `buildx` functionality and offer the following platforms:
|
||||||
|
- linux/amd64
|
||||||
|
- linux/arm64
|
||||||
|
- linux/arm/v7
|
||||||
|
- linux/arm/v6
|
||||||
|
- linux/ppc64le
|
||||||
|
- linux/s390x
|
||||||
|
- linux/386
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Built by (c) Tim Brust and contributors. Released under the MIT license.
|
Built by (c) Tim Brust and contributors. Released under the MIT license.
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
docker build --build-arg REFRESHED_AT="$(date +%Y-%m-%d)" -f "$DOCKERFILE_PATH" -t "$IMAGE_NAME" .
|
|
@ -1,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"extends": [
|
"extends": [
|
||||||
"config:base",
|
"config:base",
|
||||||
":automergeDigest",
|
":disableRenovate",
|
||||||
|
":pinDigestsDisabled",
|
||||||
":automergePatch",
|
":automergePatch",
|
||||||
":automergeMinor",
|
":automergeMinor",
|
||||||
":automergePr",
|
":automergePr",
|
||||||
|
Loading…
Reference in New Issue
Block a user