Skip to content

Create docker-image.yml #17

Create docker-image.yml

Create docker-image.yml #17

Workflow file for this run

name: Docker Image CI
on:
push:
branches: ['main']
pull_request:
branches: ['main']
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: 'Create env file'
run: echo "${{ secrets.TWITTER.ENV.DEVELOPMENT }}" >> .env.development
- name: Build the Docker image
run: |
# IMAGE_TAG=hmt1/twitter:v$(date +%s)
IMAGE_TAG=hmt1/twitter:v5
docker build --progress=plain -t $IMAGE_TAG -f Dockerfile.dev .
echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV
- name: Print Image Tag
run: echo ${{ env.IMAGE_TAG }}
- name: Login to Docker Hub
run: docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Push Image to Docker Hub
run: docker push ${{ env.IMAGE_TAG }}
deploy_VPS:
runs-on: ubuntu-latest
needs: build
steps:
- name: Executing remote ssh commands using password
uses: appleboy/[email protected]
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.HOST_USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.PORT }}
script: |
docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }}
docker pull hmt1/twitter:v5
docker stop twitter-clone
docker rm twitter-clone
docker run -dp 4000:4000 --name twitter-clone --restart unless-stopped -v ~/twitter-clone/uploads:/app/uploads hmt1/twitter:v5