![](/img/trans.png)
[英]How to deploy Django repository from Github to cpanel for automatic changes
[英]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
這里的要點是:
master
分支重命名為main
,請務必考慮到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.