1577-2 / .github /workflows /docker-deploy.yml
Sunti
Update docker-deploy.yml
b97902e
Raw
History Blame
3.39 kB
name: Docker Compose CI/CD
on:
workflow_dispatch:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
DOCKER_IMAGE: ghcr.io/jtsb2b/homeshopping
DOCKER_TAG: latest
CONTAINER_NAME: "homeshopping"
jobs:
build-push:
runs-on: ubuntu-22.04
permissions:
actions:
write
packages:
write
repository-projects:
read
contents:
read
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and Push Docker Image
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
push: true
tags: ${{ env.DOCKER_IMAGE }}:${{ env.DOCKER_TAG }}
cache-from: type=gha
cache-to: type=gha,mode=max
deploy:
needs: build-push
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- name: Deploy via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USERNAME }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
docker pull ${{ env.DOCKER_IMAGE }}:${{ env.DOCKER_TAG }}
docker stop ${{ env.CONTAINER_NAME }} || true
docker rm -f ${{ env.CONTAINER_NAME }} 2> /dev/null || true
docker run -d --name ${{ env.CONTAINER_NAME }} -p 8016:7860 \
-e CALL_ADMIN_URL="${{ secrets.CALL_ADMIN_URL }}" \
-e GCP_SERVICE_ACCOUNT_JSON='${{ secrets.GCP_SERVICE_ACCOUNT_JSON }}' \
-e GEMINI_API_KEY="${{ secrets.GEMINI_API_KEY }}" \
-e GEMMA_API_KEY="${{ secrets.GEMMA_API_KEY }}" \
-e GEMMA_BASE_URL="${{ secrets.GEMMA_BASE_URL }}" \
-e CHAT_BASE_URL="${{ secrets.CHAT_BASE_URL }}" \
-e HF_TOKEN="${{ secrets.HF_TOKEN }}" \
-e JAI_API_KEY="${{ secrets.JAI_API_KEY }}" \
-e JAI_BASE_URL="${{ secrets.JAI_BASE_URL }}" \
-e JTS_API_KEY="${{ secrets.JTS_API_KEY }}" \
-e JTS_BASE_URL="${{ secrets.JTS_BASE_URL }}" \
-e LANGFUSE_HOST="${{ secrets.LANGFUSE_HOST }}" \
-e LANGFUSE_PUBLIC_KEY="${{ secrets.LANGFUSE_PUBLIC_KEY }}" \
-e LANGFUSE_SECRET_KEY="${{ secrets.LANGFUSE_SECRET_KEY }}" \
-e MONGO_ROOT_PASSWORD="${{ secrets.MONGO_ROOT_PASSWORD }}" \
-e MONGO_ROOT_USERNAME="${{ secrets.MONGO_ROOT_USERNAME }}" \
-e MONGO_URL="${{ secrets.MONGO_URL }}" \
-e OPENAI_API_KEY="${{ secrets.OPENAI_API_KEY }}" \
-e PURCHASE_URL="${{ secrets.PURCHASE_URL }}" \
-e TYPHOON_API_KEY="${{ secrets.TYPHOON_API_KEY }}" \
-e TYPHOON_BASE_URL="${{ secrets.TYPHOON_BASE_URL }}" \
${{ env.DOCKER_IMAGE }}:${{ env.DOCKER_TAG }}
docker image prune -af
docker ps -a
docker logs ${{ env.CONTAINER_NAME }}