Skip to content

Docker - NextJS by @juttayaya from main #8

Docker - NextJS by @juttayaya from main

Docker - NextJS by @juttayaya from main #8

Workflow file for this run

name: Docker - NextJS
on:
workflow_dispatch:
push:
branches:
## GitHub Actions need '**' to match branches with '/' in their name
- '**'
paths:
- "nextjs-blog/**"
tags:
- '*'
pull_request:
branches:
- 'main'
permissions:
id-token: write
contents: read
defaults:
run:
shell: bash
run-name: ${{ github.workflow }} by @${{ github.actor }} from ${{ github.ref_name }}
jobs:
build:
name: Build and Push Image
runs-on: ubuntu-latest
steps:
-
name: Check out code
uses: actions/checkout@v3
-
name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
-
name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
-
name: Docker meta
id: dockermeta
uses: docker/metadata-action@v4
with:
images: ${{ vars.NEXT_BLOG_ECR }}
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Build and Tag Docker image
uses: docker/build-push-action@v4
with:
file: nextjs-blog/docker/Dockerfile
context: nextjs-blog
tags: ${{ steps.dockermeta.outputs.tags }}
labels: ${{ steps.dockermeta.outputs.labels }}
load: true
push: false
cache-from: type=gha
cache-to: type=gha,mode=max
-
name: Push image to Amazon ECR
id: build-image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: nextjs-blog
IMAGE_TAG: ${{ github.sha }}
run: |
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT