From 6aaebbf876f5f05213cd6779e6f0d89d1a63efb3 Mon Sep 17 00:00:00 2001 From: sidpalas Date: Fri, 10 Feb 2023 12:37:24 -0500 Subject: [PATCH] Add GitHub action example (#1) --- .github/workflows/image-ci.yml | 54 +++++++++++++++++++ .../api-node/Dockerfile.1 | 2 +- .../api-node/Dockerfile.2 | 2 +- .../api-node/Dockerfile.3 | 2 +- .../api-node/Dockerfile.4 | 2 +- .../api-node/Dockerfile.5 | 2 +- .../api-node/Dockerfile.6 | 2 +- .../api-node/Dockerfile.7 | 2 +- .../api-node/Dockerfile.8 | 2 +- .../client-react/Dockerfile.5 | 2 - 10 files changed, 62 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/image-ci.yml diff --git a/.github/workflows/image-ci.yml b/.github/workflows/image-ci.yml new file mode 100644 index 0000000..31a9026 --- /dev/null +++ b/.github/workflows/image-ci.yml @@ -0,0 +1,54 @@ +name: image-ci + +on: + push: + branches: + - 'main' + - 'github-action' + tags: + - 'v*' + +jobs: + build-tag-push: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + sidpalas/devops-directive-docker-course-api-node + tags: | + type=raw,value=latest + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=raw,value={{date 'YYYYMMDD'}}-{{sha}} + + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v4 + with: + file: ./06-building-container-images/api-node/Dockerfile.8 + context: ./05-example-web-application/api-node/ + push: true + tags: ${{ steps.meta.outputs.tags }} + + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + image-ref: 'sidpalas/devops-directive-docker-course-api-node:latest' + format: 'table' + exit-code: '1' + ignore-unfixed: true + vuln-type: 'os,library' + severity: 'CRITICAL' \ No newline at end of file diff --git a/06-building-container-images/api-node/Dockerfile.1 b/06-building-container-images/api-node/Dockerfile.1 index f35a36c..fcebc97 100644 --- a/06-building-container-images/api-node/Dockerfile.1 +++ b/06-building-container-images/api-node/Dockerfile.1 @@ -1,6 +1,6 @@ # Pin specific version # Use alpine for reduced image size -FROM node:19.4-alpine +FROM node:19.6-alpine COPY . . diff --git a/06-building-container-images/api-node/Dockerfile.2 b/06-building-container-images/api-node/Dockerfile.2 index 4cdc55a..568b7f5 100644 --- a/06-building-container-images/api-node/Dockerfile.2 +++ b/06-building-container-images/api-node/Dockerfile.2 @@ -1,6 +1,6 @@ # Pin specific version # Use alpine for reduced image size -FROM node:19.4-alpine +FROM node:19.6-alpine # Specify working directory other than / WORKDIR /usr/src/app diff --git a/06-building-container-images/api-node/Dockerfile.3 b/06-building-container-images/api-node/Dockerfile.3 index 636b301..7b2a874 100644 --- a/06-building-container-images/api-node/Dockerfile.3 +++ b/06-building-container-images/api-node/Dockerfile.3 @@ -1,6 +1,6 @@ # Pin specific version for stability # Use alpine for reduced image size -FROM node:19.4-alpine +FROM node:19.6-alpine # Specify working directory other than / WORKDIR /usr/src/app diff --git a/06-building-container-images/api-node/Dockerfile.4 b/06-building-container-images/api-node/Dockerfile.4 index ce684db..787d48b 100644 --- a/06-building-container-images/api-node/Dockerfile.4 +++ b/06-building-container-images/api-node/Dockerfile.4 @@ -1,6 +1,6 @@ # Pin specific version for stability # Use alpine for reduced image size -FROM node:19.4-alpine +FROM node:19.6-alpine # Specify working directory other than / WORKDIR /usr/src/app diff --git a/06-building-container-images/api-node/Dockerfile.5 b/06-building-container-images/api-node/Dockerfile.5 index cda4e27..099be27 100644 --- a/06-building-container-images/api-node/Dockerfile.5 +++ b/06-building-container-images/api-node/Dockerfile.5 @@ -1,6 +1,6 @@ # Pin specific version for stability # Use alpine for reduced image size -FROM node:19.4-alpine +FROM node:19.6-alpine # Set NODE_ENV ENV NODE_ENV production diff --git a/06-building-container-images/api-node/Dockerfile.6 b/06-building-container-images/api-node/Dockerfile.6 index 75f041e..7eb4a52 100644 --- a/06-building-container-images/api-node/Dockerfile.6 +++ b/06-building-container-images/api-node/Dockerfile.6 @@ -1,6 +1,6 @@ # Pin specific version for stability # Use alpine for reduced image size -FROM node:19.4-alpine +FROM node:19.6-alpine # Set NODE_ENV ENV NODE_ENV production diff --git a/06-building-container-images/api-node/Dockerfile.7 b/06-building-container-images/api-node/Dockerfile.7 index 6ce2a9a..b45dc22 100644 --- a/06-building-container-images/api-node/Dockerfile.7 +++ b/06-building-container-images/api-node/Dockerfile.7 @@ -1,6 +1,6 @@ # Pin specific version for stability # Use alpine for reduced image size -FROM node:19.4-alpine +FROM node:19.6-alpine # Set NODE_ENV ENV NODE_ENV production diff --git a/06-building-container-images/api-node/Dockerfile.8 b/06-building-container-images/api-node/Dockerfile.8 index 5e992da..3076c14 100644 --- a/06-building-container-images/api-node/Dockerfile.8 +++ b/06-building-container-images/api-node/Dockerfile.8 @@ -1,6 +1,6 @@ # Pin specific version for stability # Use alpine for reduced image size -FROM node:19.4-alpine +FROM node:19.6-alpine # Set NODE_ENV ENV NODE_ENV production diff --git a/06-building-container-images/client-react/Dockerfile.5 b/06-building-container-images/client-react/Dockerfile.5 index 19310d8..76ddbcb 100644 --- a/06-building-container-images/client-react/Dockerfile.5 +++ b/06-building-container-images/client-react/Dockerfile.5 @@ -1,5 +1,3 @@ -# syntax=docker/dockerfile:1.5 - FROM node:19.4-bullseye AS build # Specify working directory other than /