Skip to content

update docker file [deploy] #2

update docker file [deploy]

update docker file [deploy] #2

Workflow file for this run

name: Deploy to Ubuntu Server
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
if: github.event_name == 'push' && contains(github.event.head_commit.message, '[deploy]') == true
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up JDK 21
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '21'
- name: Build with Maven
run: mvn clean package
env:
DB_URL: ${{ secrets.DB_URL }}
DB_USERNAME: ${{ secrets.DB_USERNAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
MAIL_USERNAME: ${{ secrets.MAIL_USERNAME }}
MAIL_PASSWORD: ${{ secrets.MAIL_PASSWORD }}
- name: Build Docker image
run: docker build -t ci-cd:latest .
env:
DB_URL: ${{ secrets.DB_URL }}
DB_USERNAME: ${{ secrets.DB_USERNAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
MAIL_USERNAME: ${{ secrets.MAIL_USERNAME }}
MAIL_PASSWORD: ${{ secrets.MAIL_PASSWORD }}
- name: Save Docker image to file
run: docker save ci-cd:latest -o ci-cd-latest.tar
- name: Copy Docker image to server
uses: appleboy/[email protected]
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
source: "ci-cd-latest.tar"
target: "~/"
- name: Deploy to server
uses: appleboy/[email protected]
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
sudo docker load -i ~/ci-cd-latest.tar
sudo docker stop ci-cd-container || true
sudo docker rm ci-cd-container || true
sudo docker run -d --name ci-cd-container -p 80:80 ci-cd:latest