-
Notifications
You must be signed in to change notification settings - Fork 2
39 lines (33 loc) · 1.33 KB
/
docker-publish.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
name: Docker
on:
push:
branches:
- main
paths:
- '**/Dockerfile'
jobs:
push:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Log into registry
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login ${{ secrets.DOCKER_REGISTRY_URL }} -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
- name: Build and push the images
run: |
for dockerFilePath in $(git diff-tree --no-commit-id --name-only -r ${{ github.sha }} ${{ github.event.before }} | grep "Dockerfile");
do
folder=${dockerFilePath%"/Dockerfile"}
VERSION=${folder##*/}
PHP_VERSION=8.3.1
tmpName="image-$RANDOM"
docker build $folder --file $folder/Dockerfile --tag $tmpName --build-arg PHP_VERSION=$PHP_VERSION
IMAGE_ID=${{ secrets.DOCKER_REGISTRY_URL }}/${{ secrets.IMAGE_NAME }}
docker tag $tmpName $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION
docker tag $tmpName $IMAGE_ID:${VERSION}-$PHP_VERSION
docker push $IMAGE_ID:${VERSION}-$PHP_VERSION
if [ "$VERSION" == "fpm" ]; then docker tag $tmpName $IMAGE_ID:latest; fi
if [ "$VERSION" == "fpm" ]; then docker push $IMAGE_ID:latest; fi
done;