簡體   English   中英

Github ssh-action 配置以部署 django 應用程序中的更改

[英]Github ssh-action configuration to deploy changes in django application

我已經設置了一個工作流來執行一個腳本,該腳本本質上只是 makemigrations、遷移和運行 collectstic,然后重新啟動 gunicorn 並重新加載 nginx。

我已經配置了我的 settings.py 文件以從環境中獲取秘密和一些其他變量。 問題是,當我手動 ssh 進入服務器並運行它時腳本成功執行,而當通過 ssh-action 執行相同操作時,它會拋出錯誤

我的腳本

# Cd into the required directory
cd myproject/

# Pull the changes
git pull

# Makemigrations and migrate
myenv/bin/python manage.py makemigrations
myenv/bin/python manage.py migrate

# Collectstatic
myenv/bin/python manage.py collectstatic --noinput

# Restart gunicorn and reload nginx
systemctl restart gunicorn
systemctl reload nginx

我的動作配置

name: deploying changes
on:
  push:
    branches: [main]

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: deploying changes
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          key: ${{ secrets.KEY }}
          script: |
            sh deploy_changes.sh

這成功連接到服務器,但以下是它嘗試執行 makemigrations 和 migrate 命令時拋出的錯誤

err:     raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
err: django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

另外,我在服務器上有一個 .env 文件,我使用python-dotenv package 在settings.py文件中加載環境變量

from dotenv import load_dotenv
load_dotenv(verbose=True)

請幫助配置。 提前致謝。

我通過使用以下方法解決了它:


name: deploying changes
on:
  push:
    branches: [main]

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: deploying changes
        uses: appleboy/ssh-action@master
        env:
          DJANGO_SECRET_KEY: ${{ secrets.DJANGO_SECRET_KEY }}
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          key: ${{ secrets.KEY }}
          envs: DJANGO_SECRET_KEY
          script: |
            export DJANGO_SECRET_KEY=$DJANGO_SECRET_KEY
            sh deploy_changes.sh
            ls -al

這里的要點是:

  • 您可以通過首先在配置的 env 部分提供所有必需的環境變量來手動導出它們。
  • Github 已將master分支重命名為main ,請務必考慮到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM