|
41 | 41 | - name: Lint Dockerfile.temporal |
42 | 42 | run: docker run --rm -i hadolint/hadolint < Dockerfile.temporal |
43 | 43 |
|
| 44 | + docker-scout: |
| 45 | + name: Docker Security Scanning |
| 46 | + runs-on: ubuntu-latest |
| 47 | + needs: hadolint |
| 48 | + strategy: |
| 49 | + matrix: |
| 50 | + service: |
| 51 | + - name: n8n |
| 52 | + dockerfile: Dockerfile.n8n |
| 53 | + tag: n8n-test:latest |
| 54 | + - name: temporal |
| 55 | + dockerfile: Dockerfile.temporal |
| 56 | + tag: temporal-test:latest |
| 57 | + steps: |
| 58 | + - name: Checkout code |
| 59 | + uses: actions/checkout@v4 |
| 60 | + - name: Set up Docker Buildx |
| 61 | + uses: docker/setup-buildx-action@v3 |
| 62 | + - name: Login to Docker Hub |
| 63 | + uses: docker/login-action@v3 |
| 64 | + with: |
| 65 | + username: ${{ secrets.DOCKERHUB_USERNAME }} |
| 66 | + password: ${{ secrets.DOCKERHUB_TOKEN }} |
| 67 | + - name: Build ${{ matrix.service.name }} image |
| 68 | + uses: docker/build-push-action@v5 |
| 69 | + with: |
| 70 | + context: . |
| 71 | + file: ${{ matrix.service.dockerfile }} |
| 72 | + push: false |
| 73 | + tags: ${{ matrix.service.tag }} |
| 74 | + load: true |
| 75 | + - name: Scan ${{ matrix.service.name }} image |
| 76 | + uses: docker/scout-action@v1 |
| 77 | + with: |
| 78 | + command: cves |
| 79 | + image: ${{ matrix.service.tag }} |
| 80 | + sarif-file: ${{ matrix.service.name }}-scan.sarif |
| 81 | + github-token: ${{ secrets.GITHUB_TOKEN }} |
| 82 | + summary: true |
| 83 | + format: json |
| 84 | + write-comment: true |
| 85 | + - name: Upload ${{ matrix.service.name }} scan results |
| 86 | + uses: github/codeql-action/upload-sarif@v2 |
| 87 | + with: |
| 88 | + sarif_file: ${{ matrix.service.name }}-scan.sarif |
| 89 | + category: ${{ matrix.service.name }} |
| 90 | + |
44 | 91 | service-check: |
45 | 92 | name: Service Availability Check |
46 | 93 | timeout-minutes: 10 |
|
0 commit comments