Docker #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Docker | |
on: | |
workflow_dispatch: | |
workflow_run: | |
workflows: ["Release"] | |
types: | |
- completed | |
jobs: | |
push_to_registry: | |
name: Push Docker image to Docker Hub | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out the repo | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Set env | |
run: echo "LATEST_TAG=$(git describe --tags `git rev-list --tags --max-count=1`)" >> $GITHUB_ENV | |
- name: Fetch artifact | |
uses: dsaltares/fetch-gh-release-asset@master | |
with: | |
file: 'build.zip' | |
- name: Unzip build dir | |
uses: montudor/action-zip@v1 | |
with: | |
args: unzip -qq build.zip | |
- name: Log in to Docker Hub | |
uses: docker/login-action@v3.0.0 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v5.5.1 | |
with: | |
images: acdemeg/web-downloader-frontend | |
- name: Build and push Docker image | |
uses: docker/build-push-action@v5.1.0 | |
with: | |
context: . | |
file: ./Dockerfile | |
push: true | |
tags: acdemeg/web-downloader-frontend:${{ env.LATEST_TAG }} | |
- name: Executing remote ssh commands using password | |
uses: appleboy/ssh-action@v1.0.3 | |
with: | |
host: ${{ secrets.HOST }} | |
username: ${{ secrets.USERNAME }} | |
password: ${{ secrets.PASSWORD }} | |
script: | | |
echo '--- START WORK ON REMOTE SERVER ---'; | |
cd projects/web-downloader-frontend; | |
echo '--- DOCKER OPERATIONS ---'; | |
docker-compose down; | |
echo '--- LIST OF DOCKER CONTAINERS AFTER STOPPING DOCKER CONTAINERS ---'; | |
docker ps -a; | |
echo '--- REMOVE OLD VERSION ---'; | |
docker system prune --all --force; | |
echo '--- GET NEW VERSION ---'; | |
export TAG=${{ env.LATEST_TAG }} | |
echo $TAG | |
docker-compose up --no-build -d; | |
echo '--- LIST OF DOCKER CONTAINERS AFTER STARTING DOCKER CONTAINERS ---'; | |
docker ps -a; | |
echo '--- CHECK DOCKER SPACE UTILIZATION ---'; | |
docker system df | |
echo '--- CHECK FREE DISK SPACE ---'; | |
df -h / |