From ed6da539ceabfc6236f7561ff925b91bd804aa21 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Fri, 27 Jun 2025 19:11:18 +0300 Subject: [PATCH] deploy: use docker hub --- .github/workflows/deploy.yml | 38 +++++++++++++++++++++++------------- docker-compose.yml | 12 +++--------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 6f68b1a..2eeeb2a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,18 +1,34 @@ -name: Deploy Strapi to VPS +name: Build & Deploy Strapi from Docker Hub + on: push: branches: - master jobs: - deploy: - environment: production + build-and-push: + name: Build and Push to Docker Hub runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 + - name: Login to Docker Hub + run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin + + - name: Build image + run: docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/strapi-app:latest . + + - name: Push image to Docker Hub + run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/strapi-app:latest + + deploy: + name: Deploy to VPS + needs: build-and-push + runs-on: ubuntu-latest + + steps: - name: Setup SSH key run: | mkdir -p ~/.ssh @@ -20,22 +36,14 @@ jobs: chmod 600 ~/.ssh/id_rsa ssh-keyscan -H ${{ secrets.VPS_HOST }} >> ~/.ssh/known_hosts - - name: Sync project to VPS - run: | - rsync -avz --delete . ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }}:/home/${{ secrets.VPS_USER }}/strapi-app - - - name: Deploy on VPS + - name: Login and deploy on VPS run: | ssh ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }} " - cd /home/${{ secrets.VPS_USER }}/strapi-app && \ - echo 'APP_KEYS=${{ secrets.APP_KEYS }}' > .env && \ echo 'API_TOKEN_SALT=${{ secrets.API_TOKEN_SALT }}' >> .env && \ echo 'ADMIN_JWT_SECRET=${{ secrets.ADMIN_JWT_SECRET }}' >> .env && \ echo 'TRANSFER_TOKEN_SALT=${{ secrets.TRANSFER_TOKEN_SALT }}' >> .env && \ echo 'JWT_SECRET=${{ secrets.JWT_SECRET }}' >> .env && \ - - echo 'DATABASE_CLIENT=postgres' >> .env && \ echo 'DATABASE_HOST=${{ secrets.DATABASE_HOST }}' >> .env && \ echo 'DATABASE_PORT=${{ secrets.DATABASE_PORT }}' >> .env && \ echo 'DATABASE_NAME=${{ secrets.DATABASE_NAME }}' >> .env && \ @@ -43,6 +51,8 @@ jobs: echo 'DATABASE_PASSWORD=${{ secrets.DATABASE_PASSWORD }}' >> .env && \ echo 'DATABASE_SSL=false' >> .env && \ - docker compose down && \ - docker compose up -d --build + cd ~/strapi-app && \ + docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }} && \ + docker compose pull && \ + docker compose up -d " diff --git a/docker-compose.yml b/docker-compose.yml index 4fb1441..23c9848 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,29 +1,23 @@ services: strapi: - build: . + image: vchikalkin/zapishis-strapi:latest ports: - "1337:1337" environment: - # HOST: ${HOST} - # PORT: ${PORT} APP_KEYS: ${APP_KEYS} API_TOKEN_SALT: ${API_TOKEN_SALT} ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET} TRANSFER_TOKEN_SALT: ${TRANSFER_TOKEN_SALT} - # DATABASE_CLIENT: ${DATABASE_CLIENT} + JWT_SECRET: ${JWT_SECRET} DATABASE_HOST: ${DATABASE_HOST} DATABASE_PORT: ${DATABASE_PORT} DATABASE_NAME: ${DATABASE_NAME} DATABASE_USERNAME: ${DATABASE_USERNAME} DATABASE_PASSWORD: ${DATABASE_PASSWORD} - # DATABASE_SSL: ${DATABASE_SSL} - # DATABASE_FILENAME: ${DATABASE_FILENAME} - JWT_SECRET: ${JWT_SECRET} + DATABASE_SSL: "false" networks: - app - networks: app: external: true -