4242 - name : Build API Gateway image
4343 run : docker build -t api-gateway ./api-gateway
4444
45+
4546 docker-scout :
4647 needs : build-and-test
4748 if : ${{ secrets.DOCKER_NAME != '' && secrets.DOCKER_TOKEN != '' }}
@@ -64,35 +65,43 @@ jobs:
6465 - service : api-gateway
6566 context : ./api-gateway
6667 image : api-gateway
68+
6769 steps :
6870 - name : Checkout repository
6971 uses : actions/checkout@v4
7072
7173 - name : Set up Docker Buildx
7274 uses : docker/setup-buildx-action@v3
7375
76+ # 🔐 Đăng nhập Docker Hub (rất quan trọng để tránh lỗi "user githubactions not entitled")
7477 - name : Log in to Docker Hub
7578 uses : docker/login-action@v3
7679 with :
7780 username : ${{ secrets.DOCKER_NAME }}
7881 password : ${{ secrets.DOCKER_TOKEN }}
7982
8083 - name : Build ${{ matrix.service }} service image
81- run : docker build -t ${{ matrix.image }}:scout ${{ matrix.context }}
84+ run : |
85+ docker build -t docker.io/${{ secrets.DOCKER_NAME }}/${{ matrix.image }}:scout ${{ matrix.context }}
8286
87+ # 🧪 Phân tích bằng Docker Scout
8388 - name : Analyze ${{ matrix.service }} image with Docker Scout
8489 uses : docker/scout-action@v1
8590 with :
8691 command : cves
87- image : ${{ matrix.image }}:scout
88- sarif-file : ${{ matrix.image }}-docker-scout.sarif
89- exit-code : false
92+ image : docker.io/${{ secrets.DOCKER_NAME }}/${{ matrix.image }}:scout
9093 accept-license : true
94+ exit-code : false
95+ sarif-file : ${{ matrix.image }}-docker-scout.sarif
96+ write-comment : false
97+ github-token : ${{ secrets.GITHUB_TOKEN }}
9198
99+ # 📤 Upload kết quả dạng SARIF để GitHub hiển thị trong Security tab
92100 - name : Upload Docker Scout results
93101 uses : github/codeql-action/upload-sarif@v3
94102 with :
95- sarif_file : ${{ matrix.image }}-docker-scout.sarif
103+ sarif_file : ${{ matrix.image }}-docker-scout.sarif }
104+
96105
97106 push-docker-images :
98107 needs : build-and-test
@@ -114,7 +123,7 @@ jobs:
114123
115124 - name : Build and push service images
116125 env :
117- REGISTRY : ${{ secrets.DOCKER_NAME }}
126+ REGISTRY : docker.io/ ${{ secrets.DOCKER_NAME }}
118127 GIT_SHA : ${{ github.sha }}
119128 run : |
120129 if [ -z "$REGISTRY" ]; then
@@ -127,10 +136,12 @@ jobs:
127136 IMAGE_SHA="$REGISTRY/$service:${GIT_SHA::7}"
128137 IMAGE_LATEST="$REGISTRY/$service:latest"
129138
139+ echo "🔧 Building and pushing $service..."
130140 docker build -t "$IMAGE_SHA" -t "$IMAGE_LATEST" "./$service"
131141 docker push "$IMAGE_SHA"
132142 docker push "$IMAGE_LATEST"
133143 done
144+
134145 - name : Debug secrets
135146 run : |
136147 if [ -z "${{ secrets.DOCKER_NAME }}" ] || [ -z "${{ secrets.DOCKER_TOKEN }}" ]; then
@@ -139,4 +150,3 @@ jobs:
139150 else
140151 echo "Docker secrets found"
141152 fi
142-
0 commit comments